[WIP] code generation refactor

This PR is based the llvmlite2 branch. My aim was to factor out the code generation machinery from the target context and into a separate facility. CUDA is probably broken as I don't have a device to test (yet).
MCJIT engine+linking references are buried in the LLVM mailing list.  This (http://llvm.org/docs/MCJITDesignAndImplementation.html) has too much details but may help.