Add Values and Printer to give middleware control over Handler return

This moves the return handling functionality from Router into a new Printer() middleware by means of a Values type. This allows other middleware to do things with values returned from the previous handler.

This keeps the functionality of Martini & ClassicMartini functionality identical to the way it is now. Router tests have been updated to reflect the changes, and new tests have been added for Printer().