added data_buffer_t, which bundles the funky gap_buffer's together and provides a simple buffer data editing API. The buffer_t will now be key_handling --> edits logic