add Keccak, Sponge, SHA3, SHAKE and sjcl.bitArrayLE

Also depends on #163 for byteswapM.

The implemenation uses the current [draft](http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf), and I think it is unlikely to change now:
* Use `2*bits` as capacity again if `bits` is the intended security level used in the name
* Sponge uses "10*1" padding (this was always the case)
* SHA3 "pads" (domain separation before sponge padding) with "01" (in little endian, becomes `10b` big endian)
* SHAKE "pads" with "1111"

The test vectors are quite large (11MB).