Add support for sending binary messages.

When enabled, frames are sent as text or binary depending on whether
they are of type unicode or str. Additionally, Unicode characters in
text frames are properly encoded.

This must be specifically requested via .setBinaryMode(True) so as to
preserve backwards compatibility with the previous behavior that a str
object would be sent as a text frame.