refactor request body lib design

- previously, the library took as input an array of characters and did
  some parsing internally, however this presented issues when a user
  would want json data, for example.
- now, you simply supply the library with the string you want the post
  data to contain. you can use the renamed requests_url_encode
  function to process your data beforehand, and feed the returned string
  into the post call