Fixing ssl_cert task error message

If you run `rake ssl_cert` without arguments it fails on .gsub method, 
this should be done after the check 
remote_file: CHEF-1031: FTP URLs; CHEF-3786: authenticated HTTP/S

Conflicts:

	lib/chef/provider/remote_file.rb
	lib/chef/resource/remote_file.rb
add attribution for ftp methods
Merge branch 'master' into rest_client_11
pull ftp functionality out of remote_file.rb, move to remote_file/ftp.rb
add file://
Fix remote_file namespacing
Update existing tests to function with RestClient::Request
add new tests
correctly display source name in converge description
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'