Add loadNativeObj and unloadNativeObj
This work was done by niteria, I only try to upstream it as part of merging plan related to !3478 (closed)
To my best knowledge, the most important files changed are
I tried to apply this patch on ghc/master, but I couldn't make it compile on my machine, however I think it's still a good idea to start with what I can compile.
Although it can be compiled, there are tests not passing before this change, and this change doesn't introduce new test failure.