Identity Provider

Add an identity provider interface to state and an implementation for agents. User, Unit and Machine tags use the AgentIdentityProvider to authenticate.
Bah... we are missing an abstraction.

What I think we need here is a TagAuthenticator that deals with tags.  The implementation that handles users will then call into an IdentityProvider.  More comments coming.