Allow user to upload external documents.

**What does this PR do?**
Allows users to reference external files as documents in GeoNode.

**Background**
Users often want to reference an external document vs downloading and uploading the document into GeoNode.  This PR provides that functionality by adding a `doc_url` field to the Documents model.  This PR also removes redundant code by switching the `document_upload` and `document_replace` views to class-based views and adds two new forms to clean up duplicate form validation logic.  This PR also makes the styling of the document upload and document replace forms consistent with other GeoNode forms.

**Issues**
https://github.com/GeoNode/geonode/issues/1291
https://github.com/ingenieroariel/yolanda/issues/27

**Screenshots**
![screen shot 2014-04-11 at 10 20 44 am](https://cloud.githubusercontent.com/assets/1141646/2688212/7d6f4990-c28c-11e3-9ce9-d08923313b31.png)

**Notes**
* This functionality requires a migration.
* Thumbnails are not generated for external documents.
* The form validation does **not** allow users to create a document with both a URL and a file.

**Questions**
* Are there any security concerns we need to take into account?  I do notify the user that the document they are about to download is an external document: 
![screen shot 2014-04-12 at 6 01 11 pm](https://cloud.githubusercontent.com/assets/1141646/2688240/426f99d8-c28e-11e3-9077-54b5b26610c4.png)