Ignore keys that cannot be mapped rather than searching again and again
Don't copy mapping on return otherwise inferred key mappings will never be cached.
Mutability model for mappings to ensure mutations do not affect cached versions
No need to return a different object for an immutable copy
Merge pull request #18 from Raizlabs/ND-IgnoreFailedKeyLookups

Mutability model for mapping objects