Remove most usages of Core::Context->request:

Tremendous fucking work. Clean up and remove all usages (except the
Core::Dispatcher) of Core::Context's request method. This allows to
untangle Core::Context even further.

This included cleaning up a lot of tests, reworking them to make
sense, and to make sure more core component receive the app. Since
they originally used Core::Context, we weren't expecting them to be
user-facing anyway.

And if they're not, better use them more properly in tests.

Noteworthy:
- Dancer::Core::Error had a response attribute which was allowed
an existing response object. We assume this is to remove the need
to instantiate a new one, because it will override the values of
any response object available *anyway*. This is confusing and silly,
to say the least. It's now just an empty response by default.

You can still provide it with your own response, but it will:
1. Not be dependent on Core::Context in any way (which is good).
2. Will probably override everything you set in it anyway.