Add support for io.ReadClosers to form uploads.

I have a need, for unit and acceptance testing purposes, to synthesize
data at runtime and/or use well-known constant strings for sending
"files" to a server.  Creating temporary files is heavy-weight and thus
slows test execution down.  Besides support for actually naming files, I
added support for ReadCloser interfaces as well.  This allows me to not
touch the filesystem while still uploading "files" to a server.