Allow Target::to_string/from_string roundtripping for PNaCl

Parsing the (valid) target string “pnacl-32-nacl” failed, because the
“pnacl” arch was considered to set the bits and os as well, so the 32
and nacl were considered redundant and failed. Bring into line with
other archs, but add a post-check to require that bits and os are
always explicitly set when specifying pnacl. (i.e.: “pnacl” is no
longer acceptable shorthand for pnacl targets, “pnacl-32-nacl” is the
minimum.)
Track change to llvm. (The destroy/preserve source flag for a module
passed to the linker has been removed and now is always DestroySource,
which is what Haldie was passing.)
Add an error message for accessing an update() stage beyond those
which have been defined for a Func. Prevents crashing when this is
done accidentally.
Remove unneeded formatting specifiers

As it happens, scientific | fixed is not defined for C++98 (and does
nothing on Linux) but stands for "hexfloat" in C++11.
Merge branch 'master' of https://github.com/halide/Halide
Merge pull request #528 from halide/nacl

Allow Target::to_string/from_string roundtripping for PNaCl
Merge branch 'master' into symmetric_interleave
Fixed a memory bug in the Interleaver mutator.