failing tests, generateToken doesn't like null arguments #25
implements TokenOptions class with Builder pattern initialization, fixes #25

* refactors tests to use the new API
* moves role validation into TokenOptions
* makes expire_time a mandatory part of the token data