Allow config file section to be specified

Instead of always using DEFAULT, allow the section to be specified. The
section name can be specified via the file name using Paste-style
file_name#section syntax. When using extends, the same section from the
extended file will be used by default. When running
make-local-settings, the env name will now be used as the default
section name instead of DEFAULT.

One motivation for this is to have a single base config file that
contains env-specific sections with non-secret settings. Individual
env-specific config files would contain the env-specific. This base
file could then be checked into VCS.
Add option to validate settings values

When defining a LocalSetting, a validator function can now be passed.
Such a function takes a value and returns True or False. Currently,
this is only used to validate missing values that are prompted for.
It's assumed that if a value is read from a config file that it's valid
(i.e., it was either written there by the Checker or the user typed in
the value they want). It's also assumed that defaults are valid even if
they wouldn't pass the validator.

XXX: Not sure if values should also be validated when they're loaded...