Update API to v1 and remove traces of ephemeral disks.
The primary change here is updating ex_create_multiple_nodes to create disks and
nodes in parallel.
Add functionality to create_node & create_volume to use existing
disks of the same name.
Also some pep8 fixes.
Test updates for v1 plus additional changes:
  Add snapshot support
  Add .get() to many locations to make the conversion from json dictionary to
  libcloud objects more robust.
Add Snapshots to demo code and a snapshot fix
Fixes for dealing with disk on multiple node creation/destruction.
Tests for Snapshots (plus fix for list_targetpools test)
Lint fixes
One more lint fix
Initialize PyCrypto's RNG
(We don't actually use the RNG, but this should prevent certain errors if
libcloud is running in a fork of an application that has already imported the
Crypto library.)
Add support for reading/setting node scheduling options.
LIBCLOUD-439: Be consistent with other drivers and use underscores in the extra
dictionary attribute names.
Call title on the contributor name so all the names follow the same format.
Update CHANGES.
Modify lint target to also lint files in contrib/.
For convenience, add ex_create_port_forwarding_rule and
ex_delete_port_forwarding_rule method to the CloudStackNode class.

For consistency, also rename "ex_add_ip_forwarding_rule" to
"ex_create_ip_forwarding_rule".

Signed-off-by: Tomaz Muraus <tomaz@apache.org>
To make it more clear, use keyword arguments.
Update CHANGES.
Use consistent docstring format.
Use sphinxcontrib.fulltoc sphinx extension.
Fix dependency name.