Added error return type. Changed async callback to pass along errors as the first cb param. Added more tests. Updated README to be slightly more useful.