Add --disable-detection commandline option

Flags the SuriInstance that the detection engine should be disabled.
Actual disabling is not yet implemented.
Introduce g_detect_disabled global

This global will be set to TRUE if detect is disabled. The reason for
adding a global is that there currently is no clean way to pass
configuration options to management threads.
flow-time: handle detect-less case

Flow timeout code keeps track of thread module running detect, and
fails (hard) if it doesn't find it.

This changeset retrieves the global g_detect_disabled and passes
it to the timeout handling code during setup.
update runmodes to handle detect-less

In runmodes setup, consider a NULL de_ctx to mean detect is disabled.
Update main loop to handle detect-less

Update main startup and shutdown loops to work will when detect
is disabled. In this case de_ctx remains NULL.
detect-less: add log only TX handling function

When running w/o detect, TX cleanup handling needs to ignore the
inspect_id as it's only updated by detect.

This patch introduces a new ActiveTx handler for logging only:
AppLayerTransactionGetActiveLogOnly

If --disable-detection is passed on the commandline, this function
is registered.
detect-less: disable raw reassembly

When using --disable-detection automatically disable raw stream
reassembly by forcing stream.reassembly.raw to be false.
Error out if -s/-S are used with disable detect

When Suricata is started with --disabled-detection, the -s and -S
options make no sense. So error out.
Add --disable-detection configure option

Add --disable-detection configure option to compile Suricata with
detection disabled.
no-detect: handle protocols that have no logger

If a protocol parser is active without a logger when detection is
disabled, the transaction handling logic would fail. Now it will
return the proper tx id so we can clean up the complete transactions.