core: new module dependency specification interface introduced

Allows OpenSIPS modules to specify dependency relations with others.

This eliminates the need for explicit ordering of "loadmodule"
script statements. More details in "sr_module_deps.h"

All this logic is transparent at script level.
module dependencies core: add a commonly used function

Any module which depends on all SQL DB modules once its db_url is set
may use "get_deps_sqldb_url". Declared in sr_module_deps.h

Usage example: acc module
module dependencies: allow generic dependencies of own type

In other words, the modules which make use of this will be the last ones
of their type category to be loaded

e.g. db_virtual is of type MOD_TYPE_SQLDB, and requires all
MOD_TYPE_SQLDBs to be loaded before itself

Note: abuse of this functionality may lead to dependency loops
db_virtual is the only module to make use of it, currently
module dependencies core: fix a string comparison bug

when looking up modules, strcmp is more appropriate then memcmp, since
otherwise, "presence_xml" would match a search for "presence", thus leading
to "presence_xml" depending on itself
module dependencies: declare the dependencies of each OpenSIPS module
module dependencies core: properly handle the USE_FUNC_PARAM
module dependencies: Add configurable behaviour on dependency failures

When exporting a dependency, a module must also specify the action taken
if this dependency is not met during startup. Current
possible behaviours: SILENT, WARN and ABORT.
module dependencies core: reclaim all used pkg memory

After startup, all module dependency structs will be freed.