detect state: always lock de_state_m

Always lock the de_state_m on access, also at flow recycle or
cleanup.
tcp session reuse: reset detect state

Reset the detect state on TCP session reuse. We reset the app layer,
so we need to reset the stateful detection as well.
Speed up SigMatchGetLastSMFromLists()

SigMatchGetLastSMFromLists() is finding the sm with the largest
index among all of the values returned from SigMatchGetLastSM() on
the set of (list and type) tuples passed as arguments.

The function was creating an array of the types, then creating an array
of the results of SigMatchGetLastSM(), sorting that list completely, then
only returning the first values from the list.

The new code, gets one set of arguments from the variable arguments, calls
SigMatchGetLastSM() and if the returned sm has a larger index, keeps that
as the last sm.
Suppress ARM valgrind warning

Not Suricata related, so suppress.
Bug 1230: Simple test case demonstrating failure.
Bug 1230: Check all SigMatch lists for a named byte_extract variable.
pcap-log: add option to honor pass rules

Add option (disabled by default) to honor pass rules. This means that
when a pass rule matches in a flow, it's packets are no longer stored
by the pcap-log module.
Fix typo in configure message about nfnetlink
detect-dce-opnum: add sanity check

Specifying the option dce_opnum without value was triggering a
segfault.
Check replist is not NULL inline before doing any processing.

The replist is often NULL, so it is worth checking that case before making
the function call do perform work on the list.
CUDA: Update the inspection engine to inform the cuda module that it
doesn't need the gpu results and to release the packet for the next run.

Previously the inspection engine wouldn't inform the cuda module, if it
didn't need the results.  As a consequence, when the packet is next taken
for re-use, and if the packet is still being processed by the cuda module,
the engine would wait till the cuda module frees the packet.

This commits updates this functionality to inform the cuda module to
release the packet for the afore-mentioned case.
Basic MPLS decoder.
Add MPLS counter.
Check length before decoding each label.
Handle explicitly IPv6 and IPv6 labels as well as encapsulated ethernet.
Handle encapsulated ethernet without a PW by defaulting to ethernet
if a fall back.
Set decoder events for labels that shouldn't be seen on the wire.
Add unit tests to test for mpls decoder events.
Don't default to ethernet, ethernet should be preceded by a pseudowire.

If the payload type can't be determined, raise an alert.
Use ENGINE_SET_INVALID_EVENT when the packet is too small for an
MPLS header, and when the payload type can not be determined.
Fix MPLS decoder rules.
pfring: checks if the lib version is >= 6

Checks if the PF_RING version installed on the system is 6,
so old version won't be supported.