Move a lot of posix_math.cpp into posix_math.ll

This lets us annotate the calls as side-effect-free.
Improved pnacl build instructions

Pnacl llvm doesn't seem to build using ./configure && make anymore.
Changes to satisfy -pedantic
Bug in generating var names for an implicit base case reduction definition

Repeated var names were getting created, and that error wasn't being
caught as early as it should have been. We now check for name reuse
when defining a Func.

- Andrew
Add header required for memcpy.
merged