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
always re-raise on argument exception, refactor into smaller methods
add additional exception details for restclient
e.response can sometimes trash a terminal session.
move dir parsing out of ftp.initialize, don't overwrite
new_resource.source
incorrect refs to inaccessible 'uri'
CHEF-3859:  remote file resource fails ungracefully when no source is
set.
CHEF-3895: Add Chef::Checksum to JSON class hack
functional test for CHEF-3140
some cleanup utilizing the refactored RemoteFile::FTP
support etags and last modified times for remote_file
refactor http out of fetch
add unit tests for remote_file resource