Slices!

This was way too massive a refactoring.

Made buffers so they can be sliced. Also cut out most of the logic from the C
code that would go better in a lua wrapper. Slices are the laziest memory
view structure you can get: a regular lua array with the buffer offset
and amount. At least it has a fancy metatable and methods for doing stuff
as if it were a buffer. ducktyping+1