Test proxy options.
Verify valid data (string or object), throw if not valid or empty.
Update lib/needle.js

I was having some issues posting to some API's with form-url-encoded data, when the whole thing needed to be sent as JSON. This was the only way I could fix this. Is there a more elegant solution?
Update lib/needle.js
Merge pull request #20 from outrunthewolf/patch-1

Allow application/json content type for POST using 'json: true' option.
Merge branch 'master' of github.com:tomas/needle
Merge branch 'master' of github.com:tomas/needle
Cleaned up the options.json part a bit.
Merge remote branch 'upstream/master'
refactored file encoding detection