Cleanup ConfSet, ConfGet, make more concise.

Removes ifdef's for readability by using strchr instead
of strtok.
More concise API for setting config values that
can be overrided or not (final values).
Function to prune all non-final nodes from a configuration node.
Subsequent configuration keys now override previous ones
instead of merging.

The exception is final values, for example, values like
default-log-dir that may be set on the command line.
Better document ConfSet and ConfSetFinal.
Instead of exiting on memory failure, log a warning then return NULL
to signify an error to the caller.
Fix Conf api usage after rebase
Adds a defrag configuration example in suricata.yaml
Fix alignment in usage.