Fix overwriting custom `Date.now`, related to Sinon.JS issue 624

By first copying all the properties from `source` to `target` and only then setting specific functions for `now`, `toSource` and `toString`, we're not overwriting the custom implementation of those with the ones
from `source`.

Previously, the `for-in` at the end of the function, would overwrite the `now` function that we just created.

This is related to https://github.com/cjohansen/Sinon.JS/issues/624, however there seems to be more things in play here.