Removed the string key type. Only support uint keys. They take considerably
less memory and perform better.

Since most tests were using string keys, this commit is mostly about changing
our string test values to ints.

Also, key.Type shouldn't be exposed; it's an internal thing. Therefore, our
various Results now export uint ids, not key.Type. This results in a bit of
extra casting internally (for now anyways).

Will support string keys, but we'll internally map them to uints. Next commit.
Added an idmap which accept string ids and turns them into key.Type.

An ugly api do to the lack over overloading, but it's mostly all internal
implementation. As-is, this won't work with a mix of string and uint ids,
but that seems like a very unlikely case anyways.
merged int branch, along with missing commit files