update stylus version
handle ENOENT as a passthrough (courtesy @shtylman)

this allows you to mix raw .css files and .styl files (e.g. if a .css file is requested and there is no matching .styl file, it'll continue to the next middleware---presumably to your static middleware)
[API CHANGE!] pass error into watchCallback + readme updates
cleanup: no longer need to check if callback exists in internal function
basic unit tests!