Add support for Groups

**What does this PR do?**
Adds an initial implementation for group support as a contrib package.

**Background**
Group support has long been requested by GeoNode users.  This PR implements the most basic requirements of group support by allowing GeoNode's permissions to be assigned to a collection of users instead of just one user at a time.

**Issues**
https://github.com/GeoNode/geonode/issues/884
https://github.com/GeoNode/geonode/issues/255

**Screenshots**
Group list view:
![image](https://cloud.githubusercontent.com/assets/1141646/2582622/49da2b36-b9c7-11e3-8ba3-b67113f835ff.png)
Permissions popup:
![image](https://cloud.githubusercontent.com/assets/1141646/2582641/7af2311e-b9c7-11e3-8a90-8aae101b6db1.png)

**TODO**
* Update the documentation: https://github.com/GeoNode/geonode/blob/master/docs/reference/security.txt#L42
* The groups tests will fail when groups are disabled.  @jj0hns0n and I spent a non-trivial amount of time looking into this, but could not find a solution.
* Authentication logic in geonode-geoserver-ext has been updated, a PR will be submitted that needs to be merged into that project.