output-streaming: a Log API for streaming data

This patch adds a new Log API for streaming data such as TCP reassembled
data and HTTP body data. It could also replace Filedata API.

Each time a new chunk of data is available, the callback will be called.
output-streaming: StreamIterator

StreamIterator implementation for iterating over ACKed segments.

Flag each segment as logged when the log function has been called for it.

Set a 'OPEN' flag for the first segment in both directions.

Set a 'CLOSE' flag when the stream ends. If the last segment was already
logged, a empty CLOSE call is performed with NULL data.
streaming logger: support Http Body logging

Add an argument to the registration to indicate which iterator
needs to be used: Stream or HttpBody

Add HttpBody Iterator, calling the logger(s) for each Http body chunk.
tcp-data: new streaming logger

tcp-data logs out reassembled stream data in a streaming fashion.

Records type to log into different directories.
tcp-data-log: file and dir logging modes

Add a file logging mode, which logs all the data into a single log file.

Also, make the directory logging more configurable.
streaming-loggers: add configuration

Add a (disabled by default) config to the yaml
streaming: pass tx_id to logger

This way we can distinguish between various tx' in the logger.
output: add submodules list to OutputCtx

Add a list to the OutputCtx that can contain OutputModule structures.
This will be used by a 'parent' module to register submodules directly.
output-lua: display warning if no lua support

Display a warning that the lua module is not available if we're
not compiled against lua(jit).
output-lua: support submodules

Use the OutputCtx::submodules list to register additional log modules.
Currently this is hardcoded to the 'lua' module.
output: Lua HTTP log initial implementation

Initial version of a HTTP LUA logger. Execute lua scripts from the
Tx-log API.
output-lua: new file for common functions

Add output-lua-common.[ch] to store functions common to various parts
of the lua output framework.
output-lua: packet logger support

Through 'needs' the script init function can indicate it wants to
see packets and select a condition function. Currently only alerts
is an option:

    function init (args)
        local needs = {}
        needs["type"] = "packet"
        needs["filter"] = "alerts"
        return needs
    end
output-lua: add example packet log script

Example packet log script that outputs to stdout in the alert-
fast log format.
output-lua: move LuaPrintStack to common

It's a utility function that will be used in several other places
as well.
output-lua: initial packet support

Add key for storing packet pointer in the lua stack and a utility
function to retrieve it from lua callbacks.
output-lua: add stack utility functions

Add utility functions for placing things on the stack for use
by the scripts. Functions for numbers, strings and byte arrays.

Add callback for returing IP header info: ip version, src ip,
dst ip, proto, sp, dp (or type and code for icmp and icmpv6):
SCPacketTuple
output-lua: rename LuaPacketLogger to ..Alerts

As the script is called for each alert, not for each packet, name
the script LuaPacketLoggerAlerts.
output-lua: support File logging

Add file logger support. The script uses:

function init (args)
    local needs = {}
    needs['type'] = 'file'
    return needs
end

The type is set to file to make it a file logger.
output-lua: register common callbacks

Clean up callback registration in the setup-stage and register
common callbacks.