Configuration include and value overrides.

Sorry, this PR actually builds on PR 645. As in PR 645 this
includes the ability to include configuration files either at the
top level with an "include:" or the !include syntax to pull a
file in at a deeper level in the configuration.

The other commits cleanup some of the configuration API and then
define some values to be of type final, I believe this to be more
concise than the previous API.

And finally, when parsing the configuration file and a top level
key that already exists is redefined, override it. The exception
is for final type values, we don't want to override them as they
may have been set on the command line, which means they should
take precedence. There are other ways to go about this, but this
seemed pretty straight forward (to me anyways).

Successul buildbot build:
https://buildbot.suricata-ids.org/builders/jasonish/builds/33