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).
Sorry, I thought that is what you meant from an earlier review comment. 
I'll move the marshalling code out of this branch and into the client API.
>
> In state/api/params/params_test.go:
>
> > @@ -164,3 +165,27 @@ func (s *MarshalSuite) TestDeltaMarshalJSONUnknownEntity(c *gc.C) {
> >  	err := json.Unmarshal([]byte(`["qwan","change",{}]`), new(params.Delta))
> >  	c.Check(err, gc.ErrorMatches, `Unexpected entity name "qwan"`)
> >  }
> > +
> > +// TestUserInfoResultJSON tests marshalling params.UserInfoResult into, and
> > +// out of, JSON.
> > +func (s *MarshalSuite) TestUserInfoResultJSON(c *gc.C) {
> > +	emptyInfoStruct := params.UserInfoResult{}
> > +	result, err := json.Marshal(emptyInfoStruct)
> > +	c.Assert(err, gc.IsNil)
> > +	obtained := emptyInfoStruct
> > +	err = json.Unmarshal(result, &obtained)
> > +	c.Assert(err, gc.IsNil)
> > +	c.Assert(obtained, gc.DeepEquals, emptyInfoStruct)
> > +}
> > +
> > +// TestUserInfoResultYAML tests marshalling params.UserInfoResult into, and
> > +// out of, YAML.
>
> Wait, why do we need to marshal this to YAML? surely we're not just 
> taking an API result and serializing it straight out to the CLI?
>
> —
> Reply to this email directly or view it on GitHub 
> <https://github.com/juju/juju/pull/22/files#r13437291>.
>