Allow empty strings in "case" statements.  Closes #836
Zero length unknown attributes should produce an error
Switch to using tmpl_from_attr_substr in xlat_tokenize_expansion instead of duplicating the attribute reference parsing code

* fixup radius_request_name/radius_list_name to have signature/behaviour consistent with other substr type parsing functions.
* pass through 'allow_unknown' to tmpl_from_attr_substr which determines whether an unknown attribute produces a parse failure or not.
Don't remove backslash for chars which aren't escaped by us
Don't molest the DN we get back from libldap
Don't molest group names or group DNs either
Remove unused attributes
Fix use after free errors in xlat.c
Make uninitialised cursors behave sensibly
Rewrite xlat_getvp to take tmpls, and allow state attributes to be references in xlats

Because *someone* forgot to add the state list to xlat_getvp. What was that about too much abstraction?
don't escape attribute values if we were passed an escape function
Escape \n \r \t in the sql module escape function (now the xlat won't do it for us)