add user identity provisioning

@liggitt This builds on top of https://github.com/openshift/origin/pull/334, so I'll rebase it again once yours goes in, but I'm still looking for feedback.
This creates a hard mapping between the oauth abstraction and the identify store by returning a user api object.  Part of the point of the UserInfo interface is to break that coupling.  Why does this have to be a strong coupling to identity the struct vs UserInfo the interface?