Start of JS typed array work

All the unit tests pass. Main page completely untested. Also we still
need to drop in a polyfill.

Issue #23.
Punt sjclZeroArray

Just make a zero Uint8Array and convert. Whatever. It's less code.

Issue #23.
Oops

Issue #23.
Fix some bugs

Concatenation and initial cipher state.

Issue #23.
Fix some type confusion and arrayutils.equals spelling

I think the former was there before (and totally irrelevant), but
whatever.

Issue #23.
Okay, what?
Add more ASN.1 tests

OCTET STRING tests are failing.
Fix OCTET STRING encoding

Logging in with a DES key now works. Also the new unit tests pass.

Issue #23.
Fix another call to !=

Now logging in with an AES key works.

Issue #23.
More type confusion with internal vs. exposed types

Might be good to change the exported type for Uint8Array to be a plain
array. But then I'd need arrayutils.{to,from}ByteArray which is even
more things.

This fixes cross-origin ticket delegation. Issue #23.
Drop in a typed array polyfill

From http://www.calormen.com/polyfill/#typedarray

Issue #23. The way it does Uint8Array and friends is not the most
efficient, but these messages should be small and this basically only
effects IE <= 9 and pre-ICS Android.

If performance turns out to be a problem, we can do something more
interesting. (Possible solutions: monkey-patch in Uint8Array._getter and
_setter and only use those. Only use DataView. Use _setter where
appropriate and do something else for getter... have a
Uint8ArrayReadOnly or something that's secretly a plain array in the
polyfill case.)
Fix a bug in typed array polyfill

Now it works. Closes #23.