PNaCl SIMD: allow element-aligned vector load/store

PNaCl currently breaks up vector load/store instructions into the corresponding
sub-elements of the vector using {insert/extract}element followed by scalar
load/store. This was originally done so that version 0 of PNaCl SIMD wouldn't
have to bother with vector load/store (especially their alignment), punting all
complexity to existing scalar instructions. This is very suboptimal
performance-wise, and re-creating the vector load/store on the translator side
isn't a trivial matter and has several caveats.

Add support for vector load/store, aligned to their element size, in PNaCl's
ABI.

R=jvoung@chromium.org
TEST= (cd ./toolchain_build/out/llvm_i686_linux_work/ && ninja check)
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3870

Review URL: https://codereview.chromium.org/321733002

(cherry picked from commit 6cd52eed115ad65bf571026bdd0b20b51f08a473)

Conflicts:
	test/Transforms/NaCl/replace-ptrs-with-ints.ll