major refactor of API and internal logic

Primary focus is: error handling and callback as last argument
update documentation after API refactor
update example after API refactor
update and add tests after refactor
update request and npm test command
ignore node_modules directroy
fix format in documentaion
Modernized README
Version bump to 0.5.0, renamed tests/main.js, and added Andreas to contributors list.
 Major refactoring.  Added unit tests.
README rewrite
Version bump