Partial refactoring of the way a cluster is created:
* the `cluster` configuration stanza in the configuration file is now a *template*
* the `elasticluster start` command now accepts a -n,--name option to specify the name of the cluster
* the `elasticluster start` command now accepts a -c,--compute-nodes option to specify how many compute nodes to start
* Some functions from Cluster and ClusterStorage have different signature. Specifically, to load an existing cluster you should now call:

      Configurator().load_cluster(cluster_name)

	modified:   elasticluster/cluster.py
	modified:   elasticluster/conf.py
	modified:   elasticluster/subcommands.py
Remove `Cluster.load_from_storage` method
Add `Cluster.update` method.
Fix wrong condition checking in `Node.update_ips`
Refactor the inventory file creation method
Add caching of instances.

	modified:   elasticluster/providers/cloud_providers.py
Pass the `forks` argument to ansible.playbook.Playbook() class to run playbooks in parallel, whenever it's possible.

	modified:   elasticluster/providers/setup_providers.py