Request Class Issue #65

See also Pull requests #119

I've made the request class a first class object rather than use the static/facade interface used previously
That only really made sense if we had some DI container to manage it. Although given the use of some 'global' classes
in the code, the use of a DI container is looking more necessary. Something for the future.
I've also added codeception to composer and committed some basic start up stuff for that.
I think codeception looks better in terms of writing acceptance tests, over a selenium/sourcelabs framework.
doing some minor reformatting while we touch these files