Fix obvious pasto in PostOrder walk.
Add rbtree_callbydata for sane threadsafe/garbage-collected operations

  When working with an rbtree which is exposed to multiple threads,
  it is not safe to do much of anything with data retrieved by functions
  such as rbtree_finddata, other than to feed it directly to rbtree_delete.

  This is because once rbtree_finddata has returned, another thread may
  obtain a pointer to that data (and hence may begin mangling non-key
  material such as container_of or any child allocs.)  This is especially
  true for rbtrees that have a freeNode garbage collection routine defined.

  This function allows safe operations while the rbtree lock is still
  held.  It also allows for a conditional delete operation based on
  criteria which may only be safe to ascertain while the lock is held.
  In addition to short operations, it could be used, with due care, to
  trylock a more granular lock associated with the key before deleting
  the key or before operating with it outside of the rbtree lock.
Use a consistent callback return code

  This is the one place in the codebase where a positive return code
  is used in an rbtree_walk callback.  Changing it negative should have no
  effect, and keeps options open as to whether to introduce new symbols
  for the next patch to follow, or to change the libfreeradius API
  slightly WRT rbtree callback return codes.

  Whether any third-party add-ons may use positive return codes is not
  known.
Always fixup after deleting a black child node in rbtree

	This prevents rbtree_delete from creating unbalanced/illegal rbtrees.
Add a batch deletion mode to rbtree_walk

   Walks the tree calling callbacks as per InOrder
   Allows callback to ask for deletion of records after evaluating criteria
   All callbacks and deletions done while lock is held
A test file for libradius rbtree ops
    Verifies red/black counts to all child nodes after adds/deletes
    Tests DeleteOrder; code provided in comments for vanilla rbtree_delete.
    Build system magic necessary for this is beyond me.
    It's a start at least
When printing time_t values, cast to 64bit signed int
Fix for coverity CID 1042354
Add macro RDEBUG_ENABLED to check whether a certain level of request debugging is enabled.
Add the 'debug_attr' xlat for power users

At debug lvl 2 it will print all attributes and values matching the attribute name. If a list is passed it will print the contents of the list.

At debug lvl 3 it will print out the attribute vendor, type and length.

At debug lvl 4 it will print out alternative decodings of the attribute value. This is useful when the dictionaries for a NAS are not available/the NAS is very broken. It also helps with debugging improperly typed attributes.

debug_attr: always expands to a zero length string.

When debugging is not enabled the xlat function exits immediately.
We no longer have a distinct buffer for string type values and values of known length.
reinit vpc on each loop
FIx signed/unsigned comparison
Ignore nested-extern warning
Behaviour decoding extended attributes is expected
Print the contents of dv if it's NULL, oh, wait...
Fix indentation in print_abinary
Don't segv printing out hexits from malformed filters
Allow abinary now the print function is fixed.
More audits of the code

for the same problem as the last commit