callback returns first argument as null if no error

In node.js it is standard practice for the first argument of a callback to be reserved for passing an error, and should null if there is no error.
This is a breaking change that will cause existing code to not work, but it follows conventions used by most other node libraries.