Handle cloud instances inside projects

This PR introduces the concept that each cloud projects has its set of instances stored inside .gns3 project file.

Features added:
 * When a cloud project is created, an instance is created with the same name (size and image are retrieved from preferences), instance metadata are added to *.gns3 project file.
* When a project is closed (another project created/opened or program closed) all its instances are destroyed
* When a cloud project is opened from disk, instances listed inside *.gns3 project file are respawned
* When an instance is added through the cloud inspector, that instance is added to *.gns3 project file
* When an instance is removed through the cloud inspector, that instance is removed from *.gsn3 project file too and won't be respawned

Interaction with Rackspace are performed in a separate thread whenever possible and useful.
Current implementation does not handle SSH keypairs.