Feature/controllers 404

As part of JOINDIN-519, @akrabat asked whether a Controller's handle() method should return false (as per existing behavior) or throw an Exception to represent a 404.

It is my view that ```false``` is a valid response from ApiController::handle (not that I can supply a proper use case) and so to use it to signal a 404 is potentially confusing. Exception throwing will be a lot more extensible, and the mechanism will also be the fastest way to stop processing a Request and move into the app's error handling logic.

Going forward, this will probably become a moot point when a Router is created with explicit routing rules (rather than using the ```handle()``` mechanism) as has been discussed with @lornajane.