Consolidate connection opening and closing

Ensure's that each web node opens one database connection and closes it at the
end of the request. This has required me to slightly change how things are laid
out in Server.pm - I've chosen to abstract each wrapper into its own method
modifier, so we can easily compose these wrappers and understand what each part
is trying to do.

I've moved the database statement timeout set up code into the Connector itself,
as previously doing it in Model::MB was causing the FastCGI process manager to
have a database connection open throughout the entire server lifetime, which is
wasteful.

The disconnection logic of the Connector has changed, as it would previously
open a connection if there was nothing to disconnect.
Allow page timeouts to be configured per page, rather than per app

MAX_REQUEST_TIME is now DETERMINE_MAX_REQUEST_TIME, which is a function from
a Catalyst::Request to a duration in a seconds, that defines the amount of
time it can take for a response to be generated. This allows us to match
the request path to timeout specific pages at a different rate than others.
Fix invalid use of `with_translations`
Merge branch 'mbs-5741' into beta

* mbs-5741:
  Fix invalid use of `with_translations`
  Allow page timeouts to be configured per page, rather than per app
  Consolidate connection opening and closing