Fixed memory leak when using FSA Memory allocator

- Use of placement new requires explict call to object destructor before releasing memory back into the memory pool. Otherwise, memory leaks will occur when a new object is allocated over the previous object occupying that memory space.
Added functionality to retrieve total cost of solution path

- Exposed the total cost of the discovered solution path through a getter function. This will be useful in cases where the total cost is needed for further processing.
Added template interface to better define expected functions of UserState

- Created a template interface AStarState which defines all the necessary functions that AStarSearch will require of the UserState. This serves as a quick reference and can also ensure a properly implemented class is provided to AStarSearch (enforcable only with C++11 features).
Merge pull request #2 from hoshi10/master

Fixed memory leak, added a couple of features