Fix to output a JSON buffer to an Unix domain socket.

Create the JSON buffer and write to it like regular file.

Upper function SCConfLogOpenGeneric already handle it properly.

Closes issue #1246.
pfring: IPS/TAP feature

This patch adds new variables to pfring configuration:

  copy-mode
  copy-iface
  flush-packet

If copy-mode is set to ips, the packet with action DROP
are not copied to the destination interface.

If copy-mode is set to tap, all packets are copied to the
destination interface.

If flush-packet is set to no, you will decrease your CPU usage but
at the cost of sending packets in trains and thus at larger latency.
pfring: peering interfaces

This patch adds a peering of pfring interfaces.
This is make using the PfringPeer structure,
like AF_PACKET.
pfring: send packets to peered interface

This patch send the packets to the peered interface.
It also test if the packet action is drop
pfring: define HAVE_RWLOCK to avoid conflict

If HAVE_RWLOCK is not defined, in pfring library
pthread_rw_lock_t is defined as the following:

This causes some warnings:

threads.c: In function ‘ThreadMacrosTest03RWLocks’:
threads.c:92:5: warning: passing argument 1 of ‘pthread_rwlock_trywrlock’ from incompatible pointer type [enabled by default]
     r |= (SCRWLockTryWRLock(&rwl_write) == EBUSY)? 0 : 1;
     ^
In file included from threads.h:93:0,
                 from suricata-common.h:316,
                 from threads.c:27:
/usr/include/pthread.h:927:12: note: expected ‘union pthread_rwlock_t *’ but argument is of type ‘union pthread_mutex_t *’
 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
            ^
threads.c: In function ‘ThreadMacrosTest04RWLocks’:
threads.c:108:5: warning: passing argument 1 of ‘pthread_rwlock_trywrlock’ from incompatible pointer type [enabled by default]
     r |= (SCRWLockTryWRLock(&rwl_read) == EBUSY)? 0 : 1;
     ^
In file included from threads.h:93:0,
                 from suricata-common.h:316,
                 from threads.c:27:
/usr/include/pthread.h:927:12: note: expected ‘union pthread_rwlock_t *’ but argument is of type ‘union pthread_mutex_t *’
 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
            ^
threads.c: In function ‘ThreadMacrosTest05RWLocks’:
threads.c:124:5: warning: passing argument 1 of ‘pthread_rwlock_tryrdlock’ from incompatible pointer type [enabled by default]
     r |= (SCRWLockTryRDLock(&rwl_read) == EBUSY)? 0 : 1;
     ^
In file included from threads.h:93:0,
                 from suricata-common.h:316,
                 from threads.c:27:
/usr/include/pthread.h:912:12: note: expected ‘union pthread_rwlock_t *’ but argument is of type ‘union pthread_mutex_t *’
 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
            ^

This patch fixes temporarily this issue