Make changes to a copy of the options parameter

If the method alters the options hash, clients calling this method in a loop
will unwittingly be sending a different hash on the second and subsequent calls.
Added parameter to force request timeout on xen
Give 'versionId' value the expected structure
Merge pull request #2454 from joeyates/dont_alter_options_parameter

Make changes to a copy of the options parameter
Merge pull request #2455 from zertico/request_timeout_on_xen_server

Added parameter to force request timeout on xen