json: somewhere along the way  IP/port pairs had gotten swapped in
http and ssh eve logs
Force pidfile creation of --pidfile.

A pidfile can be useful when not in daemon mode, for example
when running under a process supervisor.
app-layer: cleanups

Clean up AppLayerParserThreadCtxAlloc and AppLayerParserThreadCtxFree.
Both used confusing variables in loops, with the wrong types.
decode: introduce DecodeThreadVarsFree

As a mirror of DecodeThreadVarsAlloc, DecodeThreadVarsFree is used
to free the memory that DecodeThreadVarsAlloc alloc'd, including
AppLayer storage.
pcap-file: clean up decode thread local storage

Clean up the thread local data the decode portion of pcap-file use.

Bug #978.
drmemory: remove bug 978 suppression

Bug is fixed, so suppression is no longer needed.

Bug #978.
af-packet: clean up decode thread local storage

Clean up the thread local data of the decode part of afpacket.

Bug #978
nfq: clean up decode thread local storage

Clean up the thread local data the decode portion of nfq uses.

Bug #978
pfring: clean up decode thread local storage

Clean up the thread local data the decode portion of pfring uses.

Bug #978
pcap: clean up decode thread local storage

Clean up the thread local data the decode portion of pcap uses.

Bug #978
napatech: clean up decode thread local storage

Clean up the thread local data the decode portion of napatech uses.

Bug #978
ipfw: clean up decode thread local storage

Clean up the thread local data the decode portion of ipfw uses.

Bug #978
mpipe: clean up decode thread local storage

Clean up the thread local data the decode portion of mpipe uses.

Bug #978
endace-dag: clean up decode thread local storage

Clean up the thread local data the decode portion of DAG uses.

Bug #978
erf-file: clean up decode thread local storage

Clean up the thread local data the decode portion of ERF users.

Bug #978
Replace ringbuffer in Packet Pool with a stack for better cache locality

Using a stack for free Packet storage causes recently freed Packets to be
reused quickly, while there is more likelihood of the data still being in
cache.

The new structure has a per-thread private stack for allocating Packets
which does not need any locking. Since Packets can be freed by any thread,
there is a second stack (return stack) for freeing packets by other threads.
The return stack is protected by a mutex. Packets are moved from the return
stack to the private stack when the private stack is empty.

Returning packets back to their "home" stack keeps the stacks from getting out
of balance.

The PacketPoolInit() function is now called by each thread that will be
allocating packets. Each thread allocates max_pending_packets, which is a
change from before, where that was the total number of packets across all
threads.