Rewrite / refactor. Added support for sandboxes and buffers.

Hey Evan,

Thanks for your great client library. I'm using it on a private project right now and I've been wrestling with some base signature errors in certain cases (mainly when transferring with filenames containing spaces, symbols etc) with the Dropbox API. I rewrote and refactored your library to better nail down these issues. It looks like both your lib and the OAuth lib were percent encoding data when they shouldn't be. My next task is to refactor the OAuth lib, which will be a much larger task ;).

I DRYed up a bunch of code and I've added support for transferring raw buffers and sandboxes as well, and also formatted it to my liking -- nothing against the comma first format, I'm just not into it, and this lib will be the core of my application so I want to be able to know it inside and out as well as edit it as I need to. Unfortunately, I did this refactor off of 0.3.0, so the file stream stuff didn't get included, however it would be trivial to add. Also, the changes I made to putFile are backwards incompatible (no longer provide a filename and a path -- just a path).

I don't expect you to actually merge this pull request as it's quite a radical change (backwards incompats, underscore dependency, constructor name change), however, I'm hoping you can use some of the code and DRY techniques in this commit and apply it to your lib. In the mean time, I'll likely split this off into it's own project with high praise and credit to you.


Thanks,


Ralph