Systematize buffs and their targeting

Buffs are now separated into building/unit/hero group. To check if buff
may be casted there is canBeTargetedByBuff method
Improve spell validation

With this I may close issue #19