Request response refactor

@gfosco I extracted the request/response handling from my refactor point of view PR #145.
Please wait for @SammyK's PR and then make a choice about coding style.

If you prefere mine, I'll review this deeply and add tests.

_Note: this need #164 to be merged_

__TODO__ :
- [ ] Better review
- [ ] Add missing tests
- [ ] Cleanup