Store cloud instance info in project file

This PR introduces the concept that each cloud project has its set of instances stored inside the .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 and won't be respawned
- Interactions with Rackspace are performed in a separate thread whenever possible and useful.
- Current implementation does not handle SSH keypairs.