Refactor access token

I really don't like [anemic models](http://www.martinfowler.com/bliki/AnemicDomainModel.html), so this started as a simple refactor of `AccessToken`.  It then naturally flowed into everything except `Oauth1`.

Another thing, I don't like, and welcome your feedback on, is the expiration data being transferred as seconds instead of a timestamp.  Currently, if the `AccessToken` is rebuilt, the expiration will shift, which is likely very undesirable.  Again, your feedback is welcome.

Enjoy!