With this change, the SpellTargetUnit() function is preferred
over the TargetUnit(). However this only works if a non-friendly
target is currently selected and the mouseover is a friendly one.
If a self cast is detected, the SpellTargetUnit() function will
be used to avoid a target change. Auto-attacks now continue on
self casts because the target has no longer to be changed.