Make addition work with integer keys.

There way need to be more fixes later on as bugs with integer keys are uncovered.
Improvements to underlying algorithm.
More informative error messages.