Simplify creating metadata in Buffer objects
Previously you had to create a special virtual object to place in the
Buffer
's metadata. This added a lot of difficulty that is probably
unnecessary.
Instead, just have Buffer
hold an arbitrary object and some simple
functions to copy and delete it. There may be issues with type safety
across translation units, but we'll deal with that when/if we run into
it.