refactor TokenStore

We were starting to see real logic entering the mock token store
implemented for testing. That logic has been moved to the new TokenStore,
while the storage backend has been re-implemented with the session
storage interface provided by the Symfony HTTP Foundation component.