Alternate token store

Allow users to provide a custom TokenStore for each request, and update Facebook to be compatible with this.  Other data sources will need to be similarly updated.