Update documentation
Update comments, and point to "man users"
Syntax check regular expressions at load time

And re-arrange related code to make the code paths clearer
Add regex_t to value_pair_tmpl_t

And move includes from radiusd.h, so that map.h has regex_t
defined.
Enable pre-compiled regex_t

And add regression tests for pre-parsed regex
Check for request->proxy, not request->proxy_reply

Which may be NULL if there was no reply
Point to correct precursor test
Fix fr_print_string's behaviour to work with buffers of exactly the right length

Else we need to add more hacks in fr_print_string_len if result < 4 pad result etc... and that's just nasty.
Minor formatting
Fix vp_aprint to always print escaped versions of strings, this lets the rest of the code deal with embedded NULLs correctly.

Add tests for escaping and unescaping special chars.
Foreach should return an escaped copy of the string
Don't write a terminating 0 to a zero length buffer!
Change order of hash functions in rlm_expr.c
Escape tests depend on xlat-attr-number
Should still indicate truncation
We can actually remove valuepair2str entirely

*pvp could never of been NULL as this was checked for
Certain data types are forbidden in casts
Rewrite unnecessary casts
Tests for cast on LHS and attr on RHS
Remember which tests failed

so we can have "fail 1" and "fail 4", instead of "fail" and "fail"