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.
Ensure namespaced class is findable

We get occasional uninitialized constant exceptions because the
Whitehall::ExtraQuoteRemover class cannot be found. This adds the class to its
parent module such that it can be found regardless of the execution path
of the code. See http://urbanautomaton.com/blog/2013/08/27/rails-autoloading-hell/
for more details about constant lookup and Rails autoload.
Explicitly require dependencies

Rails autoloading cannot be relied upon to load nested classes, particularly
when the code is being executed in a background job. Better to be explicit about
the dependencies.
Ensure GovUkDelivery code is correctly loaded.

As with the previous two commits, we cannot always guarantee namespaced modules
and classes will get correctly loaded in sidekiq jobs. This should ensure that
the GovUkDelivery classes can be found.
Remove unused and unnecessary code

Two of these modules were not being used and the other one is redundant as the
methods within it are only being used in one place.
Use an en dash to separate title and sector name.

A dash makes more typographical sense than a hyphen here, and elsewhere
on GOV.UK we tend to use an en dash surrounded by spaces, rather than an
em dash without spaces (or with hair spaces).
Revert changes to consultations.

Consultations are sufficiently different from Publications that it makes sense
to keep the external_url field for them.
Compile mustache templates before running JS features
Bring back basic logging for tests

Having no logging in tests is masking certain
errors and warning, which should not be ignored
and can help in debugging unexpected test failures.