list images now lists custom images (added supporting data types and serializations). Creating a node now requires a NodeSize and NodeImage created by calls to list_sizes and list_images (respectively) rather than strings to be more consistent. Creating a node supports creating a vm image if the NodeImage passed in represents a VM image (which is indicated in the extra variable and is filled out when data is deserialized in the list_images call). Updated tests to be compatible with the changes to create_node.
Fixed some styling
Cleaned up and formatted the code for readability and consistency. Updated tests for the new changes. Refactored some data structures to make things more DRY. Added a new function to list all cloud services. Modified the parsing and creation of Nodes to get the public ip from the deployment data object, since Azure appears to only return it there in some cases. Also modified nodes to include the service name they belong to in the extra dict and modified reboot and destroy node to search for that, rather than requiring it to be passed it
forgot to add vm image fixture