Server side maintenance improvements.
Add provider to maintenenace.
Add API endpoint for maintenance.
Add initial trivial permissions and test case for API.
	modified:   api/machine.py
	modified:   api/maintenance.py
	new file:   api/permissions.py
	modified:   api/serializers.py
	modified:   core/admin.py
	modified:   core/models/maintenance.py
Fix and update maintenance urls.
	modified:   atmosphere/urls.py
Add multi-cloud, multi-provider maintenance to the client side.
Add maintenance icon to provider and identity summaries.
Add conditional loading and selecting in router, identity summaries
and providers_menu.
Add instance_screen maintenance template. Display when user's selected
identity's provider is under maintenance.
Rework and respace some other surrounding javascript.
	modified:   resources/css/application.css
	modified:   resources/css/cloudfront.css
	new file:   resources/js/cf2/collections/maintenance.js
	new file:   resources/js/cf2/models/maintenance.js
	modified:   resources/js/cf2/router.js
	new file:   resources/js/cf2/templates/instance_screen/instance_screen_maint.html
	modified:   resources/js/cf2/views/instance_screen/instance_screen.js
	modified:   resources/js/cf2/views/main.js
	modified:   resources/js/cf2/views/settings_screen/identity_summary.js
	modified:   resources/js/cf2/views/sidebar/instance_list_item.js
	modified:   resources/js/cf2/views/sidebar/sidebar.js
	modified:   templates/application/login.html
	modified:   templates/cf2/index.html
Merge branch 'master' of github.com:iPlantCollaborativeOpenSource/atmosphere

Conflicts:
	api/maintenance.py
Added tty support when converting from Xen to KVM
Merge branch 'master' of https://github.com/iPlantCollaborativeOpenSource/atmosphere
Merging stable code
Merge branch 'stable' of https://github.com/iPlantCollaborativeOpenSource/atmosphere into HEAD
Merged with stable
Updated add new provider email and openstack script
Merged conflicts
Updated email on add_openstack_user
Up the version for dev.
	modified:   atmosphere/version.py
Up to date with stable
Merge branch 'master' of https://github.com/iPlantCollaborativeOpenSource/atmosphere into HEAD
Removed launch controller logic from api/__init__

New function introduced to store the actual logic required when launching an
instance: Checking the quota, getting the esh object, and converting to core
This will allow us to properly test without having the API involved.

Highlights:
* Removed extras in place of normal kwargs on launch_esh_instance
* Added explicit arguments to launch_instance and launch_esh_instance to
 cut out ambiguity
* Two new exceptions OverQuotaError and OverAllocationError, are handled by the
 API and throw the proper error response

	modified:   api/__init__.py
	modified:   api/instance.py
	modified:   atmosphere/settings/__init__.py
	modified:   service/exceptions.py
	new file:   service/instance.py
	modified:   service/quota.py
Isolated InstanceAction logic, removed from API

Highlights:
* Four new methods created for actions that require status updates in
  service/instance.py:
  * resume_instance(esh_driver, esh_instance,provider_id, identity_id, user)
  * suspend_instance(esh_driver, esh_instance,provider_id, identity_id, user)
  * start_instance(esh_driver, esh_instance,provider_id, identity_id, user)
  * stop_instance(esh_driver, esh_instance,provider_id, identity_id, user)

* New functions will:
  * Check quota (If necessary)
  * Run the driver-related functionality
  * Update status history (CORE)
	modified:   api/instance.py
	modified:   core/models/instance.py
	modified:   service/instance.py
Moved identical error message constructors to a function
Added jwt.py to authentication
Fix some code that wasn't moved when refactoring.
Add volume view hide in views/main.js render so it doesn't show up.
	modified:   resources/js/cf2/collections/maintenance.js
	modified:   resources/js/cf2/views/main.js
	modified:   resources/js/cf2/views/settings_screen/identity_summary.js
	modified:   resources/js/cf2/views/volume_screen/volume_screen.js