cleanup / refactor native code gens
the native code gen could use some cleanup / love.
- Catchup with feature parity of the llvm
a. this includes adding SIMD support on applicable native code gen architectures, starting with x86_64
- make it easier to extend / modify experiment with the native code gen
- make it easier to add new primops (maybe even a magic inline asm primop?!)
- other things i'm overlooking right now
this also overlaps with a number of related tickets i've been adding to trac.
a more ambitious strategic goal that won't be the initial goal, that simon marlow suggested when i chatted with him at ICFP, is to make the native code gen codebase a sort of "mini-llvm". I think thats a bit ambitious for the near term, but maybe thats the point on the horizon we may want to aim towards.