refactored to fix some problems with channeled spell event handling and progress timing (looks like the Blizzard event stream may have changed slightly). refactored heavily to try to recover cast warnings on target change (dropped when target is acquired, regained when target is lost, all while a spell is in progress).