Enhance compatibility with native custom elements

This fixes issue #190.

Elements that are wrapped prior to custom element registration have stale wrappers. This is not addressed generically, but we do address it here in the custom element callbacks such that the element has the expected wrapper in these callbacks. If an element does not have one of these callbacks and is wrapped prior to registration, the user must 'rewrap' the element via:

    ShadowDOMPolyfill.rewrap(ShadowDOMPolyfill.unwrap(element));

It's not possible to fix this generically since the invalid wrapper reference is held by the user.