Perf improvements for sha1.js, sha2.js, and sha2_64b.js

allocating additional memory (and incurring additional garbage
collections) unnecessarily. ~10% speed gain on Chrome 35.

goog/crypt/sha2.js: Port the block-size fast path from Sha1.update
to Sha2.update. Compute message schedule on the fly. Remove code
for testing for invalid inputs that is not present in Sha1.update.
~30% speed gain on Chrome 35.

goog/crypt/sha256_test.html: Remove testBadInput(); no similar test
is performed in sha1_test.html
I don't feel strongly either way. One argument for the other side: Suppose that you're using to, e.g. derive a key from a password, but pass an off-by-one length. (And ignore the exception.) If you don't update the hash at all, then the derived key will always be the same value.

(So perhaps the instance should be poisoned -- i.e., a flag set so that it always afterwards returns undef on a call to digest() -- if you want to go that route.)