Game server/skill system: reimplemented the generic CanAttack() check in UserCanCast() (wanted to remove it as IsAvailable() checks that, but it all needs to be cleaned up a bit first -- better to keep things behaving the same for now).