Added GridAStar and made ThetaStar subclass it.

ThetaStar subclasses GridAstar because they are basically the same just
with a few overriden methods within ThetaStar that make them differ.
Replaced the index within AbstractPathfinderNode with a rectangular
coordinates class holding x, y, and z, so that no calculations need to
be done to index the searchArea.
Added a GraphNode as another option if an adjacency list is used over a
3D arraylist for the pathfinding.