Native Code and Improved Test Cases

Hey Duo! 

While working on a new node.js project that uses Duo Security, I've decided to submit a PR with the changes I've made internally to enhance and make it easier to work with. 

Changes: 
* Modularized so it could be pushed to NPM and easily included inside a project
* Updated test cases to nodeunit. require.paths does not work on the newer builds of node (tested on 0.11.3) 
* Uses native crypto library for HMAC and Buffers for base64. 
* Documented