implement rad_auth_cb() which supports callback functions

To avoid code duplication and to make the usage clear, rad_auth() now
calls a newly implemented callback function to run FreeRADIUS's
userparse() on the user-supplied string.

For now, you can only hook in after all attributes were added, before
the packet is sent. There might be other hooking points, in the future.
Usage: Note that you'll need the header files
Proberly move global prototypes and declarations to the header file
Only add value pairs if some were supplied
Merge branch 'cb_function'

* cb_function:
  Only add value pairs if some were supplied
  Proberly move global prototypes and declarations to the header file
  Usage: Note that you'll need the header files
  implement rad_auth_cb() which supports callback functions