avoid expensive `hasOwnProperty` checks

Replace expensive calls to `hasOwnProperty` with cheaper `Object.keys`
iteration.

Provide a compatibility shim for IE7 and IE8 that handles DontEnum bug.

Shaves a full second off the unit tests and nearly doubles the speed of
`moment#clone()` on my machine.