Currently, the keys of every non-primitive object are transformed recursively. In some cases, users may not want transform certain objects, such as Date objects (see issue #7). There should be a way for users to customize whether an object gets transformed based on a predicate function they may pass in. By default, objects such as Dates probably shouldn't be transformed.