Inline serializer option.
Rename Token to TokenGenerator.
API users should use the return value of sign/encrypt.
Extract claims verification to a verify method.
Update TokenGenerator's API.

The arguments used for initalize are now used for sign/verify/encrypt/decrypt and vice versa.

Before:

  TokenGenerator.new('message', expires_in: 1.minute).sign(secret: @secret)

After:

  TokenGenerator.new(secret: @secret).sign('message', expires_in: 1.minute)

This makes the flow of a token easier to follow.

Essentially, it's like this:

message => claims bundling => serialization => token
token => deserialization => claims verification => message
Remove the secret option.
Rewrite README to use new API.
Push verify! and decrypt! to TokenGenerator.
Inline the errors file and add InvalidClaims error.