A* Implemented

Implemented the function CalculatePathToTarget() in the unit class, as
well as loads of other shit related to getting it working.
Returns a vector of node pointers which is the path to the target.

Two small augments i made, if the area clicked isnt possible to get to,
the function will recursively call itself using the lowest h score along
the area it had previously calculated as the target. This has the effect
of generating a path that gets as close as it can to the unreachable
area
Also, if you order the unit to go to a node which is already tagged
unpathable, rather than having to recursively work out the closest
pathable node, it does that directly at the start, saving a whole go
round the function.