Implement token parsing.

Tidy up tests, and add a test for expired tokens.
Update (and break) tests.

Refactoring the module to behave a bit differently -- use the module to
parse tokens into a credential object, and create a token generator
object to generate tokens, instead of just one object that does both.
Test token issuer as well.
Refactor token parser and salt generator.
Green some of the tests, use unicode_literals.
Fixup tests, raise during type checking on issue_token
Update readme