Ensure Marshal#const_lookup doesn't load the wrong constant.

There's the possibility when loading a namespaced constant, one with the same name might exist outside the namespace and thus, `Mashal#const_lookup` would load the wrong one.
MRI's behaviour (1.8 and 1.9) is to call `Module#const_missing`, which ends up raising a `NameError`.
The `Module#const_missing` part is very important, because it ensures compatibility with `ActiveSupport`'s autoloading features.

I'm not very happy about the actual implementation of the fix, I'd be glad to get some feedback.