Mad Refactoring
* Switched to Java 7
* Split the API from the implementations + demo code
* Added in refresh tokens to the default handling