Add Gaffe::ErrorsControllerResolver

Instead of letting the `Gaffe` module decide which errors controller to use for a request, I extracted the logic and encapsulated in a `ErrorsControllerResolver` class that takes a request environment and returns the right controller to use.