Access data to be written through the buffer interface

This allows us to avoid having a separate method for ctypes buffer
objects.  In fact, by accessing objects through the buffer interface we
can transparently write just about any byte-oriented data type.

The down side is that our writes may work where Python's standard file
object would raise a TypeError (since it's write method expects a str).