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:
@xuchu raises an `ExpiredMessage` exception.

Perhaps we could subclass that and create a `ExpiredSignedGlobalID`?