Add support for whitelist to tests2skip

tests2skip currently implements a test blacklist for testr.
Extending this to include a whitelist.
Whitelist is applied first. The blacklist is  executed against
the set of tests returned by the whitelist.
This way it is possible to use test selection like those from
tox.ini in tempest, and exclude some tests from them.
If whitelist is empty, all available tests are fed to blacklist.
If blacklist is empty, all tests from whitelist are returned.

The syntax for white-list and black-list is as follows:
- lines starting with # or empty are ignored
- lines starting with "+" are whitelisted
- lines starting with "-" are blacklisted
- lines not matching any of the above conditions are blacklisted

The match for each line gets added a "^" in the beginning,
so the regular expression should account for that.

For example, the following scenario:

  run all the smoke tests and scenario tests,
  but exclude the api.volume tests.

is implemented as:

  +.*smoke
  +tempest\.scenario
  -tempest\.api\.volume.*

Change-Id: Iccea6a9ebc0a298ccb16ee33ac7461db72f3a414
Merge "Add support for whitelist to tests2skip"