Link to /hosts for admins

This is useful for us to quickly hunt and filter for hostnames in the app.

At the moment, you have to know the URL to get to it.
Merge pull request #406 from alphagov/show_link_to_hosts_for_admins

Link to /hosts for admins
Enable GDS Editors to edit the transition date

- Following a conversation with Jenny and Robin, dates can be edited
  even when the site is live.
- This specifies the format that they're entered in with the date_field
  form helper, which goes into the database as yyyy-mm-dd and gets
  converted to the GOV.UK date format upon display on the site
  dashboard, as it already did.
Remove launch_date from the redirector site YAML import

- Soon, redirector will no longer be the source of transition dates.
Add breadcrumbs and a page title to the form page

- Also add a line break for the "Edit date" text on the dashboard.
Add a check_user_is_gds_editor method to avoid multiple ifs

- Then we check GDS Editor permissions on both the edit and update
  actions.
- This is on SitesController because of its redirection to the site
  dashboard.
Format the old and new dates consistently on the edit page

- Format as 'Day Month Year' in its long form, i.e. 20 September 2014,
  in GOV.UK style.
- Use the date picker field Rails helper I found about about from
  Whitehall to make it easier for people to tell the difference between
  months and days - it displays as three separate dropdowns:
  `2014 September 11` for example.
Make these features less implementation-specific
Make the edit page look like the other pages with forms

- Add a page title and make the domain name smaller.
- Remove colons from labels.
- Add a line break between labels and their text inputs.
- Correct the breadcrumb to "Edit site".
- Use Bootstrap-styled dropdowns.
Merge pull request #396 from alphagov/make_transition_date_editable

Enable GDS Editors to edit the transition date
Convert config/migrations to PostgreSQL

* Remove structure.sql, add schema.rb, configure appropriately
* Remove mySQL-specific option values from migrations
* Remove mysql2 gem in favour of pg
* Empty the migration which fixed MySQL collation
  This migration was used to fix some collation inconsistencies in
  MySQL but we don't need its functionality on PostgreSQL. The migration
  will remain in the schema_migrations table in the database, so we're
  leaving this file in place but with empty methods to avoid the
  potentially confusing '********** NO FILE **********' message shown by
  `rake db:migrate:status`.
Explicit TNA timestamp conversion

* mySQL used to implicitly convert this
* We aren't in Kansas any more
Use correct type for http_status

* mySQL would handle this implicitly
* Postgres doesn't, thank $DEITY
Fix list ordering in host/mapping_controller specs

* Used to work by coincidence in mySQL
* We're only interested in the set, not the order
Site#default_host depends on host insert order

* Make that explicit, we got away with it in mySQL
Get everything failing for a reason

* Raise RuntimeErrors with suggestions so we can see what
  class of problem breaks what in specs
* Gives us something to fix. Ignoring features right now,
  concentrating on specs
Postgres: fix organisation sites scope

* Digit boolean becomes boolean literal
* Can't alias the COUNT in the HAVING
* ONE, ah ha ha
* TWO, ah ha ha
Fix hits update

* Add upsert support that was missing from the spike
Fix the import of DailyHitTotal

* Split upsert into two queries
* Be specific about the behaviour the specs are testing
Fix sort by hits

* Postgres requires NULLS LAST on an ORDER DESC, apparently
* We can get away with the GROUP BY primary key trick for the rest