Shallow-copy the provider map to prevent accidental mutations.

We consider this thing to be immutable, but if we keep a reference to
the caller's dictionary they'll probably mutate it without considering
that we're using it. It's therefore safer to just take a copy, which has
the additional advantage that now we can add the Injector provider without
mutating the *caller's* dictionary.