refactored, updated and tested whole module

Have updated the module, removed some dependencies, fully tested and proved working against PayPal.

I have kept the API exactly the same, so all that should be needed is a version bump in the package.json and a publish to npm.

If you dont want to do that because its too much change let me know and I will create another npm package for this module.