CHEF-3156 - Be more optimistic about net-ssh
CHEF-2960 - Increase JSON constraint
Add Chef::User class

This commit adds a Chef::User class similar to the Chef::ApiClient
class.  Notable differences are the presence of a password attribute
and the fact that the API will not return chef_type or json_type
attributes.  The latter means that the Chef::REST class will not
automatically inflate API responses to Chef::User objects.
Add user commands to knife.

This commit adds the following commands to knife:

    knife user list
    knife user show USERNAME
    knife user create USERNAME
    knife user delete USERNAME
    knife user reregister USERNAME

Note that since Chef::User objects do not contain a json_class, the
edit object method will not work as expecated.
Update knife-configure to create user rather than client.

Chef 11 now has users as a first-class, authenticatable actors.

    knife configure -i

now creates a user rather than a client.
Chef::User.list should handle responses from Hosted/Private Chef

The API responses from a GET to the "users" endpoint currently returns
a different response on Hosted and Private Chef.  Chef::User.list
transforms this response into form returned by the open source server.
Use same name validations as used by the server in user model.
User tests are about users, avoid '@client' as a variable name.
Add validation of password length to the user-create plugin.

Ideally this type of validation would be done somewhere in the model.
Currently our use of the set_or_return method doesn't easily allow for
these types of validations.
Ensure a Chef::User object is returned from #reregister
Merge branch 'CHEF-3707'
development version bump
11.2.0.rc.1
Release 11.2.0-client