Expiration for signed global ids.

Adds #27.

At the moment this is for some discussion with some code.

I've taken the approach of only storing `expires_at` and converting from that when accessing `expires_in`.

I have some trouble condensing just how `expires_in`  and `expires_at` work together, and on top of that, they should work on both the instance and class level... :grin:

For instance with this set up turning off `expires_in` (by passing `nil`) at the instance level wouldn't work, because it would use the class level `expires_in`.

Basically I just want to know if I'm headed somewhere :smile:
As this array grows... it looks clear we'll want a Hash so we can accommodate new metadata without breaking old messages.

This could be a good fit for an `#as_json` (and/or `#to_h`?) representation: return a JSON object that's `{ gid: "uri", purpose: "...", expires_at: time }`, then this boils down to `@verifier.generate(as_json)`.