* TokenStorageInterface is now responsible for accessing both auth codes
and access tokens
* TokenStorageInterface now only defines the methods strictly required
for IndieAuth to work
* TokenStorageInterface now responsible for generating the auth code,
making self-encoded codes possible.
* TokenStorageInterface now responsible for token lifetimes, expiry,
and exchange
* JsonStorage implements new methods, all disk access is wrapped with
lock acquisition
Tests not yet updated!
* Internal error conditions now raise IndieAuthException
* Bubbled unknown exceptions converted to generic IndieAuthException
* Exceptions passed to overridable handler, turned into response
* Wrote many more tests, fixed a variety of problems
* Created corresponding templates
* Changed how Server configuration works
* Ensured that rauthorization approval requests verify their indieauth parameters
* Wrote first passing test for Server, fixed a variety of small errors along the way
Made some minor tweaks and improvements to the utility classes
Required some new dependencies
Server::__construct now takes a single config array as the list of
parameters was getting rather long.
Sketched out first draft of how the library should work, stubbed
a lot of the smaller utility classes required, and outlined the
main handler functions for the IA Server.