Add sanity checks for command line argument handling

Coverity 1075221.

Normally getopt_long should cover this case, but can't hurt to
add in some extra checks.
Unittest to display bug #970.
fix for bug #970.

Content strings that are a duplicate of a pattern from another sig, but
have a fast_pattern chop being applied, would end up being assigned the
same pattern id as the duplicate string.  But the string supplied to the
mpm would be the chopped string, which might result in the state_table
output_state content entry being over-riden by the the fuller string at
the final state of the smaller content length, because of which during a
match we might end up inspecting the search buffer against the fuller
content pattern, instead of the chopped pattern, which would end up being
an inspection beyond the buffer bounds.
Fix valgrind warning on memrchr unittest.
Unittest to display bug #970(ac-bs).
fix for bug #970(ac-bs).

Content strings that are a duplicate of a pattern from another sig, but
have a fast_pattern chop being applied, would end up being assigned the
same pattern id as the duplicate string.  But the string supplied to the
mpm would be the chopped string, which might result in the state_table
output_state content entry being over-riden by the the fuller string at
the final state of the smaller content length, because of which during a
match we might end up inspecting the search buffer against the fuller
content pattern, instead of the chopped pattern, which would end up being
an inspection beyond the buffer bounds.
Unittest to display bug #970(ac-gfbs).
fix for bug #970(ac-gfbs).

Content strings that are a duplicate of a pattern from another sig, but
have a fast_pattern chop being applied, would end up being assigned the
same pattern id as the duplicate string.  But the string supplied to the
mpm would be the chopped string, which might result in the state_table
output_state content entry being over-riden by the the fuller string at
the final state of the smaller content length, because of which during a
match we might end up inspecting the search buffer against the fuller
content pattern, instead of the chopped pattern, which would end up being
an inspection beyond the buffer bounds.
bug #955 - Fix SSL parsing issue.

The parser wasn't carrying out a bounds check on record length while
in the middle of parsing a handshake.  As a result we would step onto the
next record header and consider it a part of the current handshake.

- Contains an unittest to test the issue.
- Disable the duplicate parser unittest registration.

The issue came to light through an irregular ssl record, which was
reported by Sebastian Roschke, via CVE-2013-5919.

Thanks to Sebastian Roschke for reporting this issue.
Add decoder event rule for tls event "invalid_ssl_record", which will now be available "app-layer-event:tls.invalid_ssl_record".
Dns: fix memory leak when events are set
Http: fix memory leaks when cleaning up our per-tx storage
stream: clean up queue list in all cases
Http: improve tx data cleanup
DNS: free TX events using proper function
Change ParseSize api to not leak memory and only setup pcre once.
Properly cleanup NSS ctx
profiling: don't alloc 0 bytes block if no rules are used
profiling: properly clean up thread local memory.
mpm: clean up stream thread ctx