more gracefully handle overlapping ignore options

Summary:
https://github.com/facebook/buck/issues/170#issuecomment-51489110 refers
to issues watching .svn dirs and requests a way to ignore those.

https://github.com/facebook/buck/issues/170#issuecomment-51469085
demonstrates that someone got bitten by queries stopping working when
they were experimenting with ignores.

While I don't think ignoring .git or .hg makes a big difference in the
grand scheme (the default ignore_vcs works very well on our large repos,
and noticing VCS activity is an important part of filesystem settle
detection for triggers), it sounds like doing so for .svn is more of an
issue.

What this diff does:

if a dir is listed in both `ignore_dirs` and `ignore_vcs`, we'll take
the `ignore_dirs` placement as definitive, and elide that dir from the
effective value of `ignore_vcs`.

This means that it will no longer be candidate location for the cookie
dir and that queries will continue to work just fine.

Addresses https://github.com/facebook/watchman/issues/17

Test Plan: `make integration`

Reviewers: fsilva, jimp, sid0

Reviewed By: sid0

Differential Revision: https://phabricator.fb.com/D1484322