Add support for Remote Services

**What does this PR do?**
Adds an initial implementation that supports remote services in GeoNode. Support for WMS, WFS, CSW, ArcGIS REST, OpenGeoPortal and Harvard Geospatial Library are provided. Additionally, it provides a basic framework for further work in this direction.

**Background**
Support for configuring and using Remote Services in a GeoNode instance has long been requested by GeoNode users and administratrors. This PR implements the basic functionality to make this possible. Initial support for the most common OGC services as well as ArcGIS REST and other specific services is provided.

The initial implementation of this work was done by myself (@jj0hns0n) as part of the Australia New Zealand Spatial Marketplace (ANZSM) demonstrator project, and was picked up by Matt Bertrand (@mbertrand) and is in use in the WorldMap project. Further work has been done recently to make it work with GeoNode 2.0.

'Indexed' WMS layers allow for layers in a remote WMS to be indexed and Layer records created for each of the remote layers. The Map Client makes requests directly against the remote service. 

'Cascaded' WMS layers are configured in both the local GeoNode database and the catalog of the GeoServer paired with the GeoNode. This method is useful when the remote server does not support 900913 projection as GeoServer will do the reprojection on the fly. Additionally, it is possible to use the local geoserver to do caching with GeoWebCache to improve performance or handle for remote servers being offline.

The CSW support is somewhat rudimentary and only supports looking for WMS layers in the records of the remote WMS that match a specific set of conditions. @tomkralidis is planning to pick this work up and improve on it.

Additionally, Basic support for an asyncrhonous queue is added and the geonode will need to be configured with kombu support if this functionality is desired. @mbertrand can add more docs about his setup.

**Issues**
https://github.com/GeoNode/geonode/issues/1330
https://github.com/GeoNode/geonode/issues/770
https://github.com/GeoNode/geonode/issues/996
https://github.com/GeoNode/geonode/issues/268
https://github.com/GeoNode/geonode/issues/188
https://github.com/GeoNode/geonode/issues/188

**Screenshots**
Configure a new Service
![register_service_-_example com](https://cloud.githubusercontent.com/assets/506078/2597026/33b9d972-baae-11e3-9d43-260ccc0ca0a1.png)

Service Layers as GeoNode Layers
![welcome__-_example com](https://cloud.githubusercontent.com/assets/506078/2597031/4ac492f6-baae-11e3-97fc-64be96b28924.png)

Service Information Page
![example com_and_freenode_irc_network___telascience__14_users____cn_](https://cloud.githubusercontent.com/assets/506078/2597689/09002178-bab8-11e3-868d-3cb9ca091aba.png)

**TODO**
* Add info to Administrators Documentation about this functionality including use of management commands
* Add documentation about setting up the queuing system to the Admin Documentation
* Fix the issue with ModelNotActionable when configuring remote services https://github.com/jj0hns0n/geonode/compare/master...services-redux#diff-65e028487582782a9d3e44fb6a9884bcR116
* Refactor the security implementation once https://github.com/GeoNode/geonode/pull/1406 is pulled
* UI Improvements (current UI is still pretty bare bones and could use much improvement)
* Better integration with GXP (currently its not possible to address remote services easily in the Map Composer)
* Make it possible to easily add plugins for other server types (cartodb, mapbox etc)
* Setup a test/development server so that the community can try out their services without having to setup a development environment.