TypedArrays: Implement load and store swizzling operations.
This reduces an unneeded back and forth between types and additionally keeps
the value in the swappable type until it is swapped.  This is important for
correctness when dealing with floating point, to avoid the possibility of
loading the bits of a signaling NaN (because it isn't yet swapped) into the FPU.

This additionally produces better code (comments are mine):

gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)

setValue<double>:
  movd  %xmm0, %rax         ; fp reg -> gen reg
  bswapq  %rax              ; 64-bit byte swap
  movq  %rax, (%r15,%r12)   ; store