Added support for node.js crypto, from ctd1500.

Squashed commit of the following:

commit be50c9788a8506e5a92c56cadd6484c38d3360be
Author: David Bau <david.bau@gmail.com>
Date:   Tue Sep 16 02:13:36 2014 -0400

    Cleanup: only attempt require('crypto') in nodejs.

commit e96ad70495811246c7df9d2e8a72baef2f768e25
Author: David Bau <david.bau@gmail.com>
Date:   Tue Sep 16 01:56:40 2014 -0400

    Fix up tests.

commit 70ccc0b99519ae11535f3c08c648d7f326c3d73b
Author: David Bau <david.bau@gmail.com>
Date:   Tue Sep 16 00:50:22 2014 -0400

    Change coverage order.

commit 59261cc4dfc44cb0d95e0543abfd251efe56bed9
Author: David Bau <david.bau@gmail.com>
Date:   Tue Sep 16 00:45:01 2014 -0400

    Support finite bitgen.

commit efbd64c07188ffdacdccd1a172ec2bbc515bb38f
Author: David Bau <david.bau@gmail.com>
Date:   Tue Sep 16 00:43:05 2014 -0400

    More complete tests exercising crypto calls.

commit 0b3267e681a2379f90dbe7e0ebdab1f7e8090e65
Author: David Bau <david.bau@gmail.com>
Date:   Mon Sep 15 23:57:14 2014 -0400

    Update comments and docs.

commit f48802f473d4b49f44f966d0869b0cc5a7d07572
Author: David Bau <david.bau@gmail.com>
Date:   Wed Sep 17 17:13:03 2014 -0400

    Add some tests.

commit 73edbf7a8b2aed17f6a8d2a6f915732f9b94789b
Author: David Bau <david.bau@gmail.com>
Date:   Wed Sep 17 16:18:45 2014 -0400

    Uint8Array conversion not needed on nodejs crypto.

commit a43993f52661f3c039087ad133e899ea6d07010a
Author: ctd1500 <ctd1500@gmail.com>
Date:   Wed Sep 17 06:26:32 2014 -0700

    Adding support for native Node.js crypto.

commit f7c35c80dd6af9eed01c2e9c70a63b531ebc53d8
Author: ctd1500 <ctd1500@gmail.com>
Date:   Wed Sep 17 06:10:40 2014 -0700

    Fixed a few typos
release 2.3.7