Identity Provider

Add an identity provider interface to state and an implementation for agents. User, Unit and Machine tags use the AgentIdentityProvider to authenticate.
I don't like it that all the calls to Authenticate madnate that you provide a nonce value, but all our tests provide ""