Feature - Response abstraction

When extending Klein I realized that some of the more "macro" methods of the `Response` class was making it difficult to create strict extensions of the class.

For example, when creating a `JsonResponse` class, I realized that having a `dump()` method was both silly and problematic... so I've abstracted most of the `Response` class' functionality into an `AbstractResponse` class that should adhere to a more strict definition of what a true HTTP Response object should be.

This should have **no effect on backwards compatibility**. The tests are still green, and the code coverage is still [100%][pr-139]. :smile: 

 [pr-139]: https://github.com/chriso/klein.php/pull/139