Fix memory leak with nested objects #1565
Make copied properties non-enumerable to match previous behavior

Since all properties used to be added to the prototype instead of locally, Object.keys wouldn't catch them.  Now they are added as local properties of the object, so Object.keys picks them up.  Making these properties non-enumerable fixes this, to ensure backward compatibility for people who depended on this behavior.
Merge pull request #2211 from devongovett/memory-leak

Fix memory leak with nested objects #1565