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.)
Merge pull request #528 from halide/nacl

Allow Target::to_string/from_string roundtripping for PNaCl