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
Do talloc check earlier
Packet data is now talloced
Change radsniff prefix in code to rs
strerror is not threadsafe, replace with fr_syserror

fr_syserror uses TLS to create a thread local buffer, and calls strerror_r to write out the value.
Only skip on vendor if were searching for a callback
More configuration sanity checks for rlm_ldap
Move setting of packet->timestamp
Set fake packet timestamp from request packet timestamp
localtime_r can return NULL on error, we should probably check that
Check for features.h (as provided by glibc) and use it to determine the correct version of strerror_r.
Remove trailing periods from log messages
Add assert to catch mismatched attributes
Move paircompare to DICT_ATTR
All modules registering paircompare callback have been updated.
For every callback which didn't use the *req list, the first_only has been set to true
Merge pull request #397 from olivierbeytrison/fix-pair-compare

Move paircompare to DICT_ATTR