For the basics, pins are your friend.
Not possible. If you’re testing if your target is friendly then it’ll also cast the spell on your target.
As for the rest:
#showtooltip
/cast [combat,@mouseover,help,dead] [combat,help,dead] Rebirth; [help,dead] Revive; [mod:shift,@focus,harm,nodead] [@mouseover,harm,nodead] Cyclone; [@mouseover,help,nodead] [help] Overgrowth; Cyclone
You can self-innervate after the cast. But this macro is also over the 255 limit.
#showtooltip
/cast [combat,@mouseover,help,dead] [combat,help,dead] Rebirth; [help,dead] Revive; [mod:shift,@focus,harm,nodead] [@mouseover,harm,nodead] Cyclone; [@mouseover,help,nodead] [help] Overgrowth; Cyclone
/stopmacro [@mouseover,harm] [@mouseover,dead] [harm] [dead]
/cast [@player] Innervate