Add sigmund as the default arguments hasher for memoize

This is the most common use case for all of our applications,
so it makes sense to set it as the default. You can still
pass in a custom hasher as an option.

Added two tests to ensure that function calls with matching
objects are cached, and calls with different objects are not.