Improved OpenNebula support

This patch improves Fog's OpenNebula support in a number of ways:
Better NIC support in VM templates
Better ability to tune number of CPUs and memory
Ability to add/remove entries from a VM template's context section
Ability to add/remove entries from a VM template's user variables
Improved filtering for templates and NICs
[cloudstack] Add get volumes for server
[cloudstack] Add get snapshots for volume
[cloudstack] Add reset_password for server
Modularized Voxel Provider
Rescue if IO throws exception on attempted #rewind

This will permit the passing in of pipes, sockets, or other IO objects that
throw exceptions when you call the #rewind method.
Merge pull request #3253 from plribeiro3000/voxel

Modularized Voxel Provider
Merge pull request #3261 from elkelk/master

Bump the API version for DynamoDB put
Improved OpenNebula support

This patch improves Fog's OpenNebula support in a number of ways:
Better NIC support in VM templates
Better ability to tune number of CPUs and memory
Ability to add/remove entries from a VM template's context section
Ability to add/remove entries from a VM template's user variables
Improved filtering for templates and NICs
Merge pull request #3246 from giddie/glacier-pipe-data

Don't attempt to rewind IO if it's not offset
Merge pull request #3256 from hermanator/additional_cloudstack_assotiacions

[cloudstack] Extend server interface
[vSphere] Support clusters that are located below folders
[vSphere] Support non-clusters setup
Moved Vmfusion to its own gem
Merge pull request #3264 from plribeiro3000/remove_vmfusion

Moved Vmfusion to its own gem
[AWS|IAM] Do not call Fog.mock! in tests
[AWS|IAM] Also ignore Fog::AWS::IAM::NotFound (and return nil)
[AWS|IAM] Fix assigning path to IAM role
[AWS|IAM] Fix user count tests (there will be at least 1 other user on the account for fog access)
Updating authentication functions to prevent sending expired token.