Give ignore rules priority over watched directories (v2)

Via @rosshettel's PR #375:

> This changes the sorting of rules in the match() function to prioritize ignore rules so they match first. This keeps the described behavior when a user watches a directory, but ignores a specific file within that directory.

> Also, this is my first OSS pull request, so if I've mis-formatted something or otherwise done something wrong, please let me know and I'll happily fix it.

> Fixes #372

I've merged changes into this branch and made small changes to the error logging.

Closes #375 and fixes #372.