Add optional basic authentication

If $BASIC_AUTH_USER and $BASIC_AUTH_PASS are set in the environment,
use Express's basic authentication middleware to test that the user
has credentials to access the app.

Move the /_status route closer to the top of the routes because
we don't want to protect that with basic auth.
Write port back to app.config if overwritten

The port is used in other places, such as when loading the model from stagecraft stubs in `app/process_request.js`. This means it can be reliably loaded with `app.get('port')` even if overwritten with environment variables.
Merge pull request #503 from alphagov/add-optional-basic-auth

Add optional basic authentication
Merge pull request #505 from alphagov/bugfix/port-config

Write port back to app.config if overwritten
Add meta description for transaction pages.

This is for SEO purposes, in an effort to reduce the number of users who
click through to our transaction pages by mistake after entering generic
transaction-related search terms.

The meta description tries to make it clearer that this is a performance
dashboard with statistics - not the service itself.

Background here: https://www.pivotaltracker.com/s/projects/911874/stories/71237550