We no longer return -2 on partial parse error
Better parsing for attributes defined in pass1

They are now ATTR_UNKNOWN, instead of literals
Expose tmpl_define_unknown_attr
Use tmpl_define_unknown_attr()
Expose map_cast_from_hex()
Add TMPL_TYPE_ATTR_UNKNOWN

So that we can handle &Foo-Bar in pass2.  And have better
parse errors, too

Conflicts:
	src/main/map.c
perl: Don't call detach after failed perl_parse

Don't call "detach" callback in rlm_perl, if perl_parse of the Perl
module failed.

This fixes segfault when the module file cannot be read:

    Can't open perl script "/etc/raddb/mods-config/perl/example.pl": Permission denied
    rlm_perl: perl_parse failed: /etc/raddb/mods-config/perl/example.pl not found or has syntax errors.
    /etc/raddb/mods-enabled/perl[7]: Instantiation failed for module "perl"
    Segmentation fault
Better error messages