pfx_table: add iterator function pfx_table_for_each_rec(..)

pfx_table_for_each_rec(..) takes a pointer to a callback
function and optionally a void * parameter.
For every pfx_record in the pfx_table the callback function is executed
and gets the pfx_record and the void * parameter passed.

Usage example:

Define the callback function:
  void for_each_cb(const struct pfx_record *pfxr, void *data)
  {
          char ip[INET6_ADDRSTRLEN];
          ip_addr_to_str(&pfxr->prefix, ip, sizeof(ip));
          printf("IP: %s/%u-%u\n", ip, pfxr->min_len, pfxr->max_len);
  }

Call pfx_table_for_each_record(..):
  pfx_table_for_each_record(&pfxt, for_each_cb, NULL);
rtr_mgr: add wrapper function rtr_mgr_for_each_record(..)

rtr_mgr_for_each_record(..) is a convenient wrapper that calls
pfx_table_for_each_record(..).
Instead of a pointer to a pfx_table, it takes a pointer to a
rtr_mgr_conf.
pfx_table: iterate pfx_records in ascending IP prefix order

pfx_table_for_each_rec(..) returns the pfx_records sorted by IP prefix in
ascending order.

Thanks to Michael Mester for the idea and code
pfx: Add separate iterator functions for all IPv4 and IPv6 records

Add separate iterator functions to iterate through all IPv4 and IPv6
records.
If the user only want to iterate through all IPv6 records, he doesn't
have to iterate and skip through all IPv4 records before.
pfx_table: remove unnecessary asserts in iterator functions

assert(fp != NULL) was unnecessary in
pfx_table_for_each_ipv{4,6}_record(..). fp isn't dereferenced in this
function.
transport: add function tr_ident(..)

Add the function tr_ident(..) that returns an String identifier for a
socket.
For a TCP socket "host:port" is returned for a SSH socket
"user@host:port" is returned.
pfx: replace socket_id member with a pointer to the rtr_socket

Replace the socket_id member in a pfx_record, with a socket member from
type rtr_socket *. The socket member references the rtr_socket that
retrieved the pfx_record.

The previously stored socket_id also contained the memory address of the
rtr_socket but was from type uintptr_t. Converting it to type rtr_socket *
enables library users to access informations about the rtr_socket that
retrieved a particular record.
examples: fix wrong tr_socket initializations

The char * members of the tr_sockets were initialized with a char[].
This doesn't work, a pointer is normally smaller than eg a hostname
string.
rtr_mgr: remove array bound check in rtr_mgr_status_to_str

Trust the user that he uses the function correctly and only pass valid
rtr_mgr_status values instead of random integers.

The previous array bound check also was wrong. The sizeof operations
returned the total bytes allocated of the array and not the members of
the array.
rtrt: remove array bound check in rtr_state_to_str

Trust the user that he uses the function correctly and only pass valid
rtr_socket_state values instead of random integers.

The previous array bound check also was wrong. The sizeof operations
returned the total bytes allocated of the array and not the members of
the array.