Lots of little changes accumulated from time spent poring over routing code.

All tests are passing locally.

Changes
1) Add code for generating benchmarks from a graph rather than from GTFS.
2) In GenericAStar, initial PQ size can be much smaller without affecting performance.
3) Lots of comments/todos added while reading through the routing code.
4) Adds a unit test for routing w/ turn restrictions.
5) Lots of reformatting/cleanup according to style guide.
6) Factors out some repeated code snippets into methods.
7) Use a threaded server for the Thrift API.