Unexpectedly I got the native codgen working(though still using c functions for all the actual simd instructions)

I also fixed up the simd-real signature and functor in the basis library so
now all the simd real structures are generated via a functor making extending
things in the future, should need be, much simplier.

I'm actually kinda suprised that everything actually works, I had to go into the
codgen and basically translate every instance of a movs into a series of
if then expressions so that a simd move would be used for any simd values.

There is one thing that might still be a bit of a problem and that's that
the applyFFTempXmmRegArgX functon/global variable(in amd64-main.h) is essentally
an opaque block of data, that is to say there's no information on what kind of simd
data is stored there, I'm not sure if this matters as all this variable seems to do
is transfer data, I tested using both __m128 and __m128d (single and double float
simd vector c types) for the variable and using real32 simd operations for both
and everything worked, but I need to make sure this is ok.

Since I got this done faster than expected I'm going to spend a bit more time cleaning
up the interface and maybe write up a rough api for things before I delve into the
rest of the native codegen.