API refactoring

Hi @oharsta. I tried to completely refactor a minimal API out of apis-authorization-server, which could then be used as needed by extensions, etc. I think I was basically successful with only a couple of minor API changes, so please check out the changes and let me know what you think.

There is one major snag, however. Upon running the unit tests I was fairly horrified to see that Apis is serializing objects (access tokens) into the database. Of course, my refactoring completely broke any existing tokens, and it's onerous to go back and try to support deserialization of existing tokens and conversion to new tokens. For my use, compatibility of existing tokens is not a concern, but serialization of objects into the database effectively makes apis a toy that won't work in a production deployment. :(

I would like to discuss ways to externalize the access token data that's currently being serialized. The major concern is object versioning, of course, though ultimately, I want the backend repository to allow non-SQL-based storage (my architecture is based on Apache Cassandra).

I am not well versed on Spring's use of CrudRepository, so maybe you could apply some of your expertise in making a recommendation as to 1) how to resolve the serialization issue, and 2) how to eliminate the presumption of relational storage in the repository architecture.

Cheers.