[tmp] Restriction changes, and TestAutoDictionary

* NumberRestriction now handles decimals.

* Some of StringRestriction's fluent methods were overloaded, to allow
  adding multiple characters sets with one call. Also, some standard
  character sets were added as static convenience properties for use
  with WithAllow et al.

* TestAutoDictionary was added (marked internal for now). It's a normal
  dictionary that, when queried for a key and that key does not exist,
  creates a value automatically and returns that (and setting the
  key/value pair.)

* Added Common.Functions.Power, an exponentiation function for decimal
  values and integer exponents. Does not cast intermediate forms to
  double, thereby preserving the increased precision of Decimal values.