Added option to turn on and off soft float abi per arch
Updated to const division to make better use of vmull
Now assume a cortex-a9 by default
Added saturating negate and floating point negate to arm
Changed const float from 0 to 0.0f
Updated simd_op_check to either hit or remove all remaining arm ops.
Simplify cast int exprs and compares w extremes

Simplify expressions involving cast integers, computing and storing the
canonical representation of the result.
Simplify comparisons, max and max involving extreme values of integers.
Simplify: fixes; use new mod and div; test

Fix simplify handling of unsigned cast integers.
Fix minor bug in simplify And, Or: not using mutated args.
Add test of simplifier to div_mod.
Added EXPORT tag to int_cast_constant for the benefit of windows builds
Avoid a compiler warning
Commenting tweaks in simplify
Floating point mod improvement.

Now it's consistent with llvm (and more correct)

Previously 1.0f % -2.0f would return -3.0f. Ugh.
Made Type::min/max use math intrinsics for floats and 64-bit types
Simplified inline reductions using new features

Type::min/max made minimum and maximum easier
We don't need to worry about explicitly disambiguating names now
Updated simplify test to match llvm's frem
Added more 32-bit arm vector ops
Floating point mod now obeys the same sign rules as integer mod.
Updated types to compile without warnings on arm
Fixed printf warning on 64-bit OS
Turned on -O3 for tests by default.

They were taking too long to run. You can always manually
switch it to -g for debugging something.