Add support for non urlencoded payloads

This pr allows the use of curl->post('example.php', json_encode($my_payload)); and unifies this behavior for post, put and patch