Make Marshal monkey-patch opt-in.

Fixes #614.

2.99 deprecation incoming...

@myronmarston @JonRowe 

I did a small amount of research on other ways of hooking into this. Technically, the first time we create a singleton method on an object we could also override `marshal_dump` as well, but that seems pretty terrible given how rare this should be.

Q: Should un-patch be public? I only needed it for tests. Do we have precedent for this sort of thing?