Java Pattern filter

Changes can be filtered to not trigger a build; if none of the files within a change match a Java pattern (regular expression) listed, the build is filtered.

For example, with the following regular expressions:
`//depot/main/tests.*`
`//depot/main/src/.*\.cpp`
`//depot/main/build/.*(?:\.rb|\.py|\.bat|Jenkinsfile)`
`//depot/main/lib/(?!Lib1|Lib2).*`

Case A (change will not be filtered, as these files match our first pattern on "tests"):

Files:

- `//depot/main/tests/CONTRIUBTING.md`
- `//depot/main/tests/001/index.xml`

Case B (Be careful with incomplete file paths! Change will NOT be filtered,
as this file matches a pattern which was likely intended as describing a "tests/" directory.)

Files:

- `//depot/main/tests.doc`

Case C (change will NOT be filtered, as all files match our fourth pattern looking for script files in 'build/'):

Files:

- `//depot/main/build/rbs/deploy_server.rb`
- `//depot/main/build/deploy/deploy.bat`
- `//depot/main/build/Jenkinsfile`

Case D (change will be filtered, as no file matches our second pattern for ".cpp" files under "main/src"):

Files:

- `//depot/main/src/howto.doc`
- `//depot/main/src/oldmain.c`
- `//depot/main/src/art/splash.bmp`
- `//depot/main/src/bt/funnelcake.php`

Case E (change will be filtered. Lib1 is included in a negative lookahead, and thus is excluded.)

Files:

- `//depot/main/lib/Lib1/build.xml`