Rewrote table source code in hopes of cleaning it up

Split the insert and assign functions based on nil/val insertion
and added some helper functions to hopefully make the functions
less massive.

Removed key offset for ranges/lists. The offset causes issues when
evolving into a full table and didn't seem useful enough to keep.