Fix support for unaligned loads and stores

This patch reverts 42ea326b24d35a8e3036bd6e7c91ed4b522e9dd3, since broke
handling of misaligned loads and stores, and adds tests for unaligned
loads and stores.
A new API for loads and stores.

This implements the proposal at
https://github.com/johnmccutchan/ecmascript_simd/issues/78

This will give us both user-friendly float32x4 loads from Float32Array
data, and low-level low-overhead float32x4 loads at arbitrary offsets.
Fix {load,store}{X,XYZ} in wider-element arrays.

Fix the SIMD loadX, storeX, loadXYZ, and storeXYZ functions for
int32x4 and float32x4 in the case where the typed array element size is
wider than the SIMD element size. This is hopefully a very uncommon
case.
Fix typo.
Use instanceof instead of toString()

bbouvier noticed that instanceof is much faster than toString() for this
use case!
Handle typed array offsets.

Fix loadX and storeX handling of typed arrays with non-zero byteOffset
fields.
Merge pull request #79 from sunfishcode/master

Fix support for unaligned loads and stores