Enable direct linking to single key view. Also fixes refreshing browser from single key view
Enable direct linking to single machine view
Show spinner while waiting for machine to load
Optimize single key spinner
Force ajax loader to close when loading single key
Properly handle backend add.

- validate backend before adding,
- warn with proper msg if failed backend already added

We need to make sure that the user dict is updated before validating.
The same stands for removing the backend after checking that libcloud
cannot connect.
Automated build of mist.js
Initial steps for API Tests

Needs a new buildout cause we install "nose" now

Specifically:
-Added "nose" in setup.py
-Altered setup.cfg --> [nosetests] We do not need coverage there
-Added route /providers in __init__.py
-Added "providers" in views.py -->
    This was needed in order to return in our API
    our supported providers
Added the API Tests folder named TestsApi

In there:
-->test_class.py
this is a unittest class, this is the actual class
that nosetests run
-->backends.py, keypairs.py, machines.py
functions to make API calls after importing requests
Added the tests config file (yaml)

We need to replicate a user, so we should not seek in our
actual database for information and rather compare the
information that the api gives with the actual.

We use a yaml file to store information received from our
API, much like somebody using the API would do...

IMPORTANT:
You need to add some things to yaml file prior to running
nosetests. See our wiki page for more information.
Renamed yaml file to yaml.backup

In order to
cp tests_config.yaml.backup tests_config.yaml
This way whatever changes we make to .yaml will not be commited
Merge branch 'staging'
Add machine_actions, cleaning_up and to yaml file

Specifically:
--Add MACHINE_NAME, KEY_NAME to yaml.backup
--Add functions: get_private_key(), get_public_key()
--Add functions for machine actions (reboot, destroy, start, stop)
--Add cleaning up
--Add documentation and docstrings to be used by the nosetests
Add one of EC2 and Rackspace Backends

Until tests are finished, we add only one of EC2 and Rackspace backends.

Uf you want all of them erase the "break" in the add_backends tests in
test_class.py

Beware: EC2 EAST does not save the names correctly
and we cannot connect to Rackspace London
Add randomized Key Name

cause EC2 kept the old one, and could not find the correct
public key
Merge branch 'master' into tests_api
Add larger range for randomly generated names

AND:
Added better handling of Test generated keys
Moved the entire ApiTests forder to src/mist/io
Automated build of timestamped mist.js
Add support for mist.core

In order for core to use the same methods as io,
we created the MyRequests class who takes care to
make the requests with or without cookies
accordingly