Fix jsperf benchmark URLs
Add unit tests
Move gradient initialization into constructor
Use a fixed heap, arrays are now views into an ArrayBuffer
Replace use of *= operator since asm.js doesn't allow it; use valid heap size
Move F/G constants into their respective noise functions
Compare floats to floats, >= 0.0 instead of >= 0
Predeclare local variables in noise2D
Switch to asm module format
Noise contributions n0, n1, n2... are floats
Add most required type coercions
Add array type coercions; minor cleanup
Gradient array result type coercions
Module module linkage to constructor
grad3 is a float array

Note even though it only contains integers -1,0,1, storing as an int
and type converting to double has significant performance impact -
seeing about 30k ops/s with Int8Array, compared to 50k ops/s leaving
it as a Float32Array - this commit fixes the x|0 coercion, to +x.
Used indexed array access for heap
Shifted float array indices for gradient
Array indices are int, not intish
Coerce byte array outputs with |0
Add thrice instead of * 3 to avoid asm's integer multiplication + lack of Math.imul