Multipart request improvements.

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