ExternalAttachment model with external_url field.
external? method for attachments.
Views for external attachments.
Remove external_url functionality in admin.
Create and edit external attachments.

* Changes the single "html" parameter to Attachment#new to "type" which accepts
values of "html" and "external".
* Render external attachment form with external_url field.
* Display url for external attachments (in place of filename) on index page.
* Add allows_external_attachments? method to Attachable, returning false, and
override on Publication and Consultation to return true.
* Show link to add new external attachment on attachments index page if
allows_external_attachments? is true.
Check allowed attachment types.
Unit and feature test fixes.
Data migration to create external_attachments.
Remove external references in consultations.
Remove special case from attachment_required.
Front-end functional test.
Tidy up attachments controller, add tests.
Revert changes to consultations.

Consultations are sufficiently different from Publications that it makes sense
to keep the external_url field for them.
Add Attachment#readable_type, use in admin views.
Simplify validates statement.
Merge pull request #1776 from alphagov/external_attachments

External attachments