Add methods for key existence checking

The APIs diverge a bit here, since each language has its own convention for checking for key existence. Feature-wise they should be the same. There's some refactoring opportunities that I'm not taking here as well, e.g. exceptions as control flow and unnecessarily passing around instance variables. If someone complains, perhaps I'll look into them.

Will close #48