Add escape function to xlat_register

Update the xlat expansion so that expanding a module's RHS
calls xlat_process, not xlat_aprint.  That allows for ALL
of the xlat chain to be printed, not just part of it.

Update various modules to use the new xlat_register API

Update the modules to *not* call radius_xlat() from their
mod_xlat() function.

We still need to fix some modules:

perl / sql: we can now write to "fmt", so various code
needs to be changed

perl: strtok() in a thread-safe function is horrible.  Use
str2argv() instead

redis: calls radius_xlat(), in a function which is also
called from the main redis query routines.  And calls
rad_xlat_argv(), which splits the string before xlat'ing it.
That's now wrong.  Instead, the redis_xlat function should
supply an escape function (for spaces) and then rely on
str2argv()  (or similar) to chop on real spaces, and not
on escaped spaces

Also fixed a memory leak in the yubikey module
Do substring matching only on user input

request:foo matches "request"
req doesn't match "request"
Debug argv when executing programs
Use new radius_list API

Instead of decoding the name each time we run exec