Multipart request improvements.

* Added fileName() to TypedOutput so non-File parts can be named.
* Support Content-Length in multipart requests.
* Serialize parts to byte[]s so length is available.