don't mutate default argument, fixes #9

also ensure whitespace is handled correctly when keys are inferred (was
problematic due to aforementioned issue)
fix pluralization key inferrence, fixes #10

ensure that auto-inferred hashes have the same keys as their explicit
counterparts