Fix bug in how Exclude works

This bug has been around for a long time. See the added spec example.
No-one has complained, but it still needs to be fixed.

Two problems fixed:
 * We make `Exclude` paths absolute at one point to simplify handling later on. This needs to be done for all `Exclude` properties, not only `AllCops/Exclude`.
 * When checking if a file matches a pattern we must try both the absolute and the relative path, since patterns of both varieties exist.