Allow POST requests

* Allow extra headers in Request
* Add default Content-Length and Content-Type for POST requests
* Convert requests to use step-by-step method
* appiy_filters -> apply_filters