Fleshing out BGL solver (add, modify, delete, and solve)

This PR is incomplete at this point but I want to make it available for review and comments.
- The main change was converting getShortestPath to automatically determine the beginning and ending graph vertices and completing the  conversion to using boost:UUIDs.
- modifyTrajectory and removeTrajectory are not implemented yet.
- addTrajectory is very rough and incomplete.
- The graph was converted to a bidirectional graph in order to simplify identification of the start vertex/vertices; edges are still only created as if they were in a directed graph and should not effect the solution (have not done any load testing yet to compare performance of the bidirectional graph vs the direction graph).
This isn't important for this PR, but we generally don't use pointers unless they are required.  If the argument can be passed by reference, then that is desired.  At the very least, it means you don't have to check for `NULL` in your function.  These functions are protected, so it's not critical for this PR.