Rework UI first_published_at field.

Add document_new virtual field on the Edition model, and validate that
either the field is true, or a first_published_at date must be supplied.
For imported documents, first_published_at must always be supplied. The
date selector is hidden unless "not new" is selected.

To ensure that the validation is only applied in the admin controller (and not
for example when creating a draft from an existing doc, or when importing) the
validator checks for the value "unset", which is set on a before_filter for
create.

When editing existing documents, show the first_published_at as a static
value with a link to edit.
Move first_published fields.

Hide the fields and disable validation on subclasses that don't currently show
them.
Tests for new/existing document validation.
Fix cucumber tests, add controller test.
Front end tweaks for first_published changes.

* JS correctly preserves existing values for time fields
* Better styling for errors and labels
* Improved error message.
* Tests for JS.
Use better names for new/published fields.

Rename "document_new" to "previously_published", and flip logic where necessary.
Split validation logic out of the field itself, to a separate
"validate_previously_published" attribute which is set from the controller by
a new "trigger_previously_published" method.
Fix tests.
Merge pull request #1667 from alphagov/document_origin

Ask about a document's origin