Improve handling of Headers in a HeaderMap.
Message to_string -> as_string

to_string() is a standard function that doesn't require a mutable value,
so it's not appropriate to be used in this context.

Perhaps the way multipart message boundaries are handled needs to be
considered such that as_string doesn't modify state of the message,
which is weird.
Add Copy impl for various structs/enums for latest rust nightly.