Adding input and response methods

Before there was no way to get the old input or send a response with it,
or any kind of flash data, so I have added methods to do this along with
test cases for this.
You will notice the test case session is all mocked, this is because I
believe that we only need to test that our code works along side this,
since the session is a symfony class and uses php session it can prove
unreliable to test it and is a lot more accurate to make a mock of this
to test that it fires the right methods.