Refactor server class

This is to address issue #103 and make the server class more flexible and injectable. 

 - Adds setters for all controller types
 - removes redundant `ResponseType_AccessTokenInterface` in constructor
 - makes `TokenTypeInterface` injectable
 - cleans up `TokenController` constructor
 - misc other changes

**TODO**: We should update the README with an explanation of how to inject Controller classes directly