Allow get_object_https_url to accept a method

get_object_https_url is used to generate GET URLs to cloud files. However, we can support PUT requests (uploads) by allowing people to specify PUT as the method rather than having it hard coded to GET.
Error if FOG_CREDENTIAL doesn't match session

Currently, Fog will ignore the vCloud organisation specified by a
`FOG_CREDENTIAL` environment variable if a vCloud authorization token
is used to log in by specifying the `FOG_VCLOUD_TOKEN` environment
variable.

This happens because the organisation name is pulled from the response
body of the login request call. If a `FOG_VCLOUD_TOKEN` environment
variable is specified, the `get_current_session` API call is used and
the organisation returned in the response body will correspond to the
organisation specified when the vCloud token was first obtained using
the `post_login_session` API call.

It is therefore possible to specify a second `FOG_CREDENTIAL`, which
points to the same vCloud Director instance and specifies a different
organisation, but connect to the organisation used when creating the
vCloud session token. The end-user may believe that Fog is connecting to
the organisation specified by `FOG_CREDENTIAL`, but the effective
organisation is the one that was specified when first obtaining the
vCloud session token.

This could be potentially very serious if your production and test
organisations use the same vCloud Director instance (with the same
username for both organisations).

Raise an exception if the organisation or username implied by
`FOG_CREDENTIAL` differs to the one returned in the response body of the
`post_login_session` API call.

This behaves correctly if the session has expired; this code won't be
executed in that case.
Add vertical spacing for readability
Merge pull request #3169 from mattbostock/78700334-fog-credential-org-ignored

Error if FOG_CREDENTIAL doesn't match session
added public? and acl method to s3 file and minor refactoring
Adjust get_object_https_url method documentation

Adding documentation for get_object_https_url options param, highlighting that the method and scheme can be overridden.
Merge pull request #3166 from KieranP/patch-1

Allow get_object_https_url to accept a method
vaguely working Query mixin
Solid query API mixin, with tests

Preloads :id, and :name if available. Leaves everything else up to lazy-loading, though optionally can call a per-collection function to add more values if available
Mock vdc model tests are passing
find_by_query support for vdcs collection
Fix failing test -- Description is optional

The :Description field is optional on vApps, and if not specified it plays havoc
with lazy loading -- the attribute stays in NonLoaded state, which in turn means
the object gets reloaded unneccessarily. This fixes that behaviour by simply setting
a default, blank, description
Add Query support to Vms
Enable model vapp_tests in Mock mode
Enable Mock support for Model task tests
Add query support to tasks model, inc Mock
Fix up tasks_tests; add missing data from Mock
no mock for custom_fields
vApp get_execute_query 'get by name' mock

This allows us to test the vapp model 'get by name' mixin in Mock mode.
Local storage: Always try to create directories, handle already existing.

This reduces the chances of races where two client try to upload the same
file.