Added support for retrieving player units

Added support for retrieving player units. I've also rearranged the way
GetTarget works. GetTarget will no longer retrieve the first target
based on distance. You can still do this by providing your own orderby
function to order the units by distance.
Changes:

* The copyright has been changed from <2013 - 2014> to <2013>
* The CombatService class has a new implementation of MoveToUnit()
* The AbilityExecutor class has introduces two new copies of EnsureSpellsCast and ExecuteActions; They take tuple<Ability, double> objects instead of List<Ability> so that for each ability the class ensure you are in casting range.
Merge