Implement new min/max semantics

Following the proposal in
https://github.com/johnmccutchan/ecmascript_simd/issues/67

These min and max functions follow the Math.min and Math.max semantics,
and are arguably the more intuitive and semantics.

This patch also introduces minNum and maxNum functions, which follow the
IEEE-754 minNum and maxNum semantics.
Add tests for minNum and maxNum.
Don't use floor for float-to-int conversion

The default rounding for float-to-int conversion should be truncation,
rather than floor.
Use consistent coercion in constructors

Make the SIMD constructors convert their scalar operands to their
desired types.
Simplify constructor coersion

Use |0 instead of a function which does conversion to int32 using a typed
array, and use Math.fround when available for converstion to float32.
Tests for floating-point comparisons.
Tests for integer comparisons.
Additional tests for abs, neg, and div
Merge pull request #80 from sunfishcode/minmax

Implement new min/max semantics
Merge pull request #88 from sunfishcode/tests

Miscelaneous tests
Merge pull request #82 from sunfishcode/ctors

Fixes and tests for constructor functions
Add "ByScalar" to shift operations

Rename the shift operations to include "ByScalar" to clarify that their
shift count is a scalar value, and to make namespace room for adding
vector-vector shifts in the future.
Testcases for shifts.

Add tests for shiftLeftByScalar, shiftRightArithmeticByScalar, and
shiftRightLogicalByScalar.