node: deprecate the Part() constructor

The new `.attach()` interface should make this unnecessary.
node: deprecate `Request#part()`

Same as the `Part()` constructor, should no longer be
necessary with the new `attach()` interface.
node: proper inheritance

This was just annoying me...
node: use "form-data" module for multipart requests

Simplifies the logic in superagent greatly, and delegates the task
off to another module like it should be. The "form-data" module
has a lot better Stream support, and should overall be a lot more
reliable than the hand-rolled logic.
node: add backwards-compat for the `Part` class

Ideally nobody will even be using this... but this way, if anyone
is depending on the `.part()` function should still have it work
as expected.
node: ensure that _attach() only gets called once
node: attempt to set FormData's Content-Length val

This is basically copy+paste code from the `FormData#submit()`
function in the "form-data" module's code.
Merge pull request #374 from TooTallNate/update/use-form-data

Use "form-data" module for the multipart/form-data implementation