More verbose error messages about VALUE_PAIRs with bad dictionary entries
pairadd: Don't add a VP if it's already present

In the 3.0 code base, pairmake() will already do a pairadd()
automatically. If an old code base (e.g. modules originally written for
FreeRADIUS 2.x) uses pairmake() and then pairadd() explicitly, this will
add the VP *twice*, thus creating a cyclic list structure, e.g.:

    A->next == B;
    B->next == B;
    B->next == B;
    B->next == B;
    ...

This makes any function that walks all value pairs end up eating 100%
CPU.

Since VPs are added at the end of the list, we can simply stop
traversing the list and return silently in case the VP is already
present.

Signed-off-by: Julius Plenz <plenz@cis.fu-berlin.de>
Typo
Adding the same VP twice is bad mm'k Fixes #809
Still need the loop
Expose cf_item_add and cf_pair_alloc
Support adding arbitrary attributes for dynamic clients
cf_item_add defined too many times...
Rename vpt_types to tmpl_types
Write timestamps even in non-compat mode
Add tracking when reading detail files.

So that we process each packet once, and only once
Set packet->code from Packet-Type in detail file

but still force everything to be accounting packets.

We'll need a separate rad_coa() function to handle reading
coa packets from the detail file reader
Expose rad_coa_recv
Allow CoA packets to be read from the detail file
Allow CoA packets to be proxied via Packet-Dst-IP-Address
Fix compiler warning
Document 'track = yes' in the correct place
Fix typo
Move some functions around in clients.c and expose client_afrom_cs so it can be used to parse dynamically generated client sections
Formatting