Fix encrypting messages longer than 16416 bytes.

They were encrypted incorrectly due to byte-uint32 conversion handling.
Enforce using bytes with & 0xff in more places.
Make secretbox.seal support non-Array indexable messages.

Now it works with messages passed as Node Buffer and any other indexable
object.
Add box and secretbox tests which compare to tweetnacl.c.