Do all filename matching via regex patterns.

This is instead of a mixture of extensions and patterns. Makes the code simpler, and done in preparation for adding the --type-add and --type-set options.
Add ack-like --type-set and --type-add options (see eliben/pss issue 4: https://github.com/eliben/pss/issues/4).