Parameter expansion & pattern matching

Support all the parameter expansion modifiers like `${foo:-bar}` and `${file%.hc}`.

This also entailed filling out support for pattern matching, which is used by some of those modifiers, by pathname expansion, and (eventually) case statements. Pattern matching now handles much more of the spec, including the rather subtle quoting rules.