Reuse buffers when parsing

We try to reduce the number of allocations that we do in the common case by keeping our buffers around, and reusing them, if possible. Note that this requires us to be slightly careful about handing out byte slices, because the backing buffer might be reused. In most cases, we don't have to care, because the database/sql package will copy for us.

This already has #51 merged into it, so it is recommended to review that first.