Added support for multiple types in gpu.jl
Added type constraints on GPUArray and made code_ function api consistent
Rewrote lower pass to enable floating point and 32 bit precision
Templatized matrix multiply benchmark for testing all types.