[BIG REFACTORING] our request handling was getting big so took the first...

... steps of breaking it down; RequestParser tries to create a Request object that is then dispatched to a relevant handler (now an interface)