Add  Server API method: UserInfo

Add a method to the UserManagerAPI which takes a username and returns a struct of user information (username and display name at this stage).
Agreed. I've made one UserInfo type that can be used in Add|Remove|Info 
calls. Please check annotations for Tag and Password.
>
> In state/apiserver/usermanager/usermanager_test.go:
>
> > @@ -116,3 +117,64 @@ func (s *userManagerSuite) TestCannotAddRemoveAdd(c *gc.C) {
> >  		Results: []params.ErrorResult{
> >  			params.ErrorResult{expectedError}}})
> >  }
> > +
> > +func (s *userManagerSuite) TestUserInfo(c *gc.C) {
> > +	fooTag := names.NewUserTag("foobar")
> > +	barTag := names.NewUserTag("barfoo")
> > +	_, foobar, err := names.ParseTag(fooTag.String(), names.UserTagKind)
> > +	c.Assert(err, gc.IsNil)
> > +	_, barfoo, err := names.ParseTag(barTag.String(), names.UserTagKind)
> > +	c.Assert(err, gc.IsNil)
> > +
> > +	// Create a users
> > +	_, err = s.usermanager.AddUser(params.ModifyUsers{
> > +		Changes: []params.ModifyUser{{
>
> so this /looks/ to me very much like a |UserInfo|. What's the thinking 
> behind having separate types? The params package really ought to be 
> expressing the language we're using in the api, not just a grab-bag of 
> ad-hoc structs.
>
> NOTE: there are certainly reasons to choose to split the types. I'm 
> not sure the ones I can think of are quite good enough to justify it, 
> but I want to be sure we've considered them.
>
> —
> Reply to this email directly or view it on GitHub 
> <https://github.com/juju/juju/pull/22/files#r13637334>.
>