now we have our own payload implementation! see:

* we no longer support rails-like request params, like transforming
  foo => [1, 2] to foo[]=1&foo[]=2, it would now be transformed to
  foo=1&foo=2. if you like foo[], simply pass it as foo[] => [1, 2]

* this also applies to nested hash like foo => {bar => 1}. if you
  want that behaviour, just pass foo[bar] => 1.

* we also support passing an IO object which responds to `read'.
  this is the main reason why we supply our own payload implementation.
  rest-client's payload implementation enforces the payload also
  responds to `path' which doesn't really make sense. rest-core's
  payload would give you a default filename according to key name.
  this allows you passing a socket or StringIO object as the payload,
  not only files.

fixes #5
unify the way we test
users are responsible for building a correct env by themselves, see:

we introduce Client#default_env which helps you create a default env.