Implement sha512 based on tweetnacl
Add sha512 test and benchmark.
Move tests to tests directory.
Add csign test.
Move tests; add scalarmult test which compares results with tweetnacl.c.
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.
Fix zero-length sign.open test.
Put tests console output on a diet.

Comment-out full logging and output just dots (for success only).
Replace build script with a Makefile.

To build minified version:

  make

To test:

  make test

To benchmark:

  make bench

Tests now include full testing from tests directory and exclude
benchmarking.
Need more test when message length hit 40.
 Rebuild
Add chash test. To run: make test_hash
Rebuild, add more golden test for sha512, sign test pass.
sign test: stop on the first error; use "xxxx.." instead of a random
message.
Merge remote-tracking branch 'upstream/sha512' into sign
Nits found by jshint.
Use for loops everywhere tweetnacl.c uses FOR for consistency and ease
of review.
Reorganize signature code; make test fail again.

* Reordered functions so that they appear in order similar to
  tweetnacl.c.

* Replaced while loops with for loops to match tweenacl.c.

* In pack25519, change t from empty array to new gf() -- which makes the
  test fail again on 29-byte messages unless we observe n or t with
  console.log. This needs investigation.