Filter pattern for specifying scopes in which dumping is enabled.

A filter is a list of comma-separated terms of the form:
 
  <pattern>[:<level>]
 
If <pattern> contains a "*" or "?" character, it is interpreted as a glob pattern.
Otherwise, it is interpreted as a substring. If <pattern> is empty, it
matches every scope. If :<level> is omitted, it defaults to 1. The term
~<pattern> is a shorthand for <pattern>:0 to disable a debug facility for a pattern.

The default log level is 0 (disabled). Terms with an empty pattern set
the default log level to the specified value. The last
matching term with a non-empty pattern selects the level specified. If
no term matches, the log level is the default level. A filter with no
terms matches every scope with a log level of 1.

Examples of debug filters:
--------- 
  (empty string)

  Matches any scope with level 1.
--------- 
  :1

  Matches any scope with level 1.
--------- 
  *

  Matches any scope with level 1.
--------- 
  CodeGen,CodeInstall

  Matches scopes containing "CodeGen" or "CodeInstall", both with level 1.
--------- 
  CodeGen:2,CodeInstall:1

  Matches scopes containing "CodeGen" with level 2, or "CodeInstall" with level 1.
---------
  Outer:2,Inner:0}

  Matches scopes containing "Outer" with log level 2, or "Inner" with log level 0. If the scope
  name contains both patterns then the log level will be 0. This is useful for silencing subscopes.
---------
  :1,Dead:2

  Matches scopes containing "Dead" with level 2, and all other scopes with level 1.
--------- 
  Dead:0,:1

  Matches all scopes with level 1, except those containing "Dead".   Note that the location of
  the :1 doesn't matter since it's specifying the default log level so it's the same as
  specifying :1,Dead:0.
--------- 
  Code*

  Matches scopes starting with "Code" with level 1.
--------- 
  Code,~Dead

  Matches scopes containing "Code" but not "Dead", with level 1.
