Add DEFINES and EMBED_TARGETS to add_unittest()

This change allows compiling tests in-source with the library, making
private symbols testable.

Signed-off-by: Alexander Siol <dunklermeuchler@gmail.com>
Add support to disable Modules via CMake.

Also, Modules can now build against imported versions of their
dependencies. If available the module will be imported from the build tree
(this is the case when you disable a module after building it, without
doing a make clean in between). If there is no version in the build tree,
an installed version will be used. CMake will abort if it finds no
suitable version.

Signed-off-by: Alexander Siol <dunklermeuchler@gmail.com>
Move tst_tria to Core, fixes potential dependency resolution problems.

Signed-off-by: Alexander Siol <dunklermeuchler@gmail.com>
HttpServer threading, improved DepInjection, build system improvements

* CMake: -DNURIA_NO_<Module> disables <Module>
* CMake: -DNURIA_MODULES="..." to only enable some modules
* CMake: add_unittest() learned DEFINE and EMBED_TARGETS
* Network: HttpServer now supports multi-threading
* Network: HttpTcpTransport is now part of the private API
* Core: DependencyManager was improved for better MT support
* Core: Added Dependency<T> smart pointer
* Core: Fix in Callback SLOT() invocation logic

Thanks for the CMake changes goes to @delgor !