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).
Tests added, including ensuring a machine agent cannot access API.

> In state/apiserver/usermanager/usermanager_test.go:
>
> > +		Entities: []params.Entity{{Tag: userTag.String()}},
> > +	}
> > +	results, err := s.usermanager.UserInfo(args)
> > +	c.Assert(err, gc.IsNil)
> > +	expected := params.UserInfoResults{
> > +		Results: []params.UserInfoResult{
> > +			{
> > +				Username:    "",
> > +				DisplayName: "",
> > +				Error: &params.Error{
> > +					Message: `No user with the username:"foobar" could be found`,
> > +					Code:    params.CodeNotFound,
> > +				},
> > +			},
> > +		},
> > +	}
>
> We want /loads/ more tests here. user-exists, user-doesn't-exist, 
> machine-0, not-a-tag-at-all.
>
> And we also need to check this API isn't accessible to agent credentials.
>
> —
> Reply to this email directly or view it on GitHub 
> <https://github.com/juju/juju/pull/22/files#r13637369>.
>