fix all the things

- options should throw and and async errors should be passed to the callback. right now it's the inverse
- fix some invalid tests
- fix options. previously it only threw when both required options where missing, but not when only one of them where.
- added some missing error handling
- fixed some inconsistent indentation
- made it use path.join correctly (also process.cwd() is moot)
- improved the readme and package.json
Merge pull request #17 from sindresorhus/fix-all-the-things

fix all the things
Update README.md
Tweak to readme.
improve tests

So you can actually see difference between expected and actual output.
Merge pull request #18 from sindresorhus/improve-tests

Improve unit tests