Move all tests over to use RestAssured instead of URL for hitting the app.
Ensure that test files have license headers too.
If an error handler is inserted into the context, automatically insert an error catcher.
Use a deprecated shutdown method until a better way is found.
Some fixes to error handling.

The fundamental issue was that exceptions could bubble up past the point where new error handlers were bound. The fix is to wrap thrown exceptions in a container that also provides the exchange.
Some more fixes to error handling.

Don't wrap HandlerExceptions in HandlerExceptions.
Use a pooled byte buffer allocator.
Set SO_REUSEADDR to true.
Fix the shutdown process.
Close the socket after using it for the config.
Some POM cleanup.
Some work on the intro chapter.

Not complete by far.
Some minor cleanup.