Makes bcrypt optional
Adds tests
jshint.