Switch from swizzle masks to swizzle indices

This changes SIMD.float32x4.swizzle(x, SIMD.XYZW) to
SIMD.float32x4.swizzle(0, 1, 2, 3). This gives us scalability for
int8x16, and consistency with SIMD.float32x4.shuffle, which has already
made this transition.
Split ecmascript_simd.js into parts

Also tidy up the namespace footprint.
Don't override native implementations

https://github.com/johnmccutchan/ecmascript_simd/issues/35
Float64x2Array support
Expanded constructor tests
Use coercion constructors instead of checks

This replaces checkFloat32x4 and friends with uses of the coercion
constructors.
Don't create buffers when they aren't needed
Implement shift-count saturation

https://github.com/johnmccutchan/ecmascript_simd/issues/72
Update and reorganize README.md
Add a brief disclaimer
int32x4 vector-vector shifts
int16x8 and int8x16 vector-vector shifts
Mention vector-vector shifts in the README
Signed and unsigned conversion to int32x4
Fix comments.
Conversions to and from unsigned int32x4
Indentation fixes
Use strict inequality
Don't use 'new' with SIMD.float32x4 etc.

SIMD.float32x4 can be called directly without 'new'. I filed

https://bugzilla.mozilla.org/show_bug.cgi?id=1095607

to track adding 'new' support to the builtin SIMD implementation.