Update for Core Foundation bindings revamp
Make Mac surfaces serializable.

This is needed for sandboxing.
Separate out metadata from its descriptor, the latter of which is sendable
Make Linux surfaces serializable.

This is necessary for multiprocess.
Merge pull request #36 from pcwalton/multiprocess

Make surfaces serializable