Add insert without cursor movement
Cursor-Aware Operations
=======================
Pass Buffer type to Operation
=============================
+ Simplifies Operation method signatures
+ Avoids RC buffer argument (passed as part of Buffer type)
- Exposes data/GapBuffer field publicly
** move the buffer type into buffer/mod.rs and its private fields will be
accessible to child modules, namely operations/insert, delete, etc.
Pass Cursor type to Operation
=============================
+ Keeps data/GapBuffer field private
- Adds another argument to method signatures and calls
- Forces RC buffer argument
Drop RC for Cursor
==================
+ Simplifies new cursor-based operations (avoids RC buffer argument)
+ Simplifies buffer creation
- Complicates cursor movement calls outside the library
- Could result in cursor manipulation methods on buffer type to simplify
external interface.