Added cf_section_parse_pass2() for pass2 checks of config items

and PW_TYPE_XLAT, too.

Modules can now tell the server core that config items will
be dynamically expanded.  For now, this means that the server
can parse them in pass2, and complain at compile time about
syntax errors.

We will later expand this to allowing CONF_PAIRs to have compiled
xlat's, which should be faster at run time
Call cf_section_parse_pass2() after loading all of the modules
Add PW_TYPE_XLAT to most modules

We still need to convert the SQL queries, as they are buried
inside of randomly named sections
Add PW_TYPE_XLAT to sql queries, too
Parse accounting && post-auth sections statically

instead of in code.  This allows the pass2 compilation to check
that the "reference" config item passes xlat parsing.

It will also allow us to do a later xlat compilation checks
on the queries, too
Track auto-created subsections

The subsection will exist, but the "reference = foo" CONF_PAIR
won't exist.  So key off of that to determine if we run the section.

We need this because the default config has no "reference"
for "post-auth" in queries.conf.  So setting it to NULL is a bad
idea.
Don't use "goto error" and variable named "error"
Use %%s instead of %s
Add fr_canonicalize_error()

So the error messages are all of the same format, and the
code isn't duplicated all over the place
Use fr_canonicalize_error()
Add PW_TYPE_MULTI

For CONF_PAIRs which can exist multiple times in a CONF_SECTION
Add parsing for "query" via PW_TYPE_MULTI

The default configuration is parsed.  If people change the
"reference" line, they'll miss all of the pre-parsing stuff.
But... this works for now, until we have something which handles
randomly named subsections and config items.
Reduce scope of "start" variable.

Which might un-confuse the compiler, which thinks it's unused
Pre-parse insert / trim / expire, and mark them PW_TYPE_XLAT
Remove unused variable
Mark da as UNUSED to quiet scan
Much magic.  Magical land of magical unicorns and happiness
Candyland requires sugar
Add a smashing test
Be more careful about expanding conditions in the unicorn parser