This commit makes the protocol and hardware library totally modular

The core of pilight consists of protocol and hardware definitions.
The protocols add support for new devices, the hardware adds support
for different hardware interfaces / frequencies. The main "problem"
however was that the these modules were closely tied into pilight.
That meant that with each small update inside a module, pilight
hard to be fully recompiled. Also added new modules required
building the whole source before it could be used.

This commit makes all protocols and hardware independent from the
main pilight daemon. When pilight is started it dynamically loads
all protocols and hardware modules. So adding a new modules is
as simple as putting the new shared object of the module in the
appropriate folder and pilight will start using it when it
restarted. Just like the Apache and the mod_php module.
Before the module is loaded, pilight will check for compatibility.

Each protocol will soon be offered through the pilight
repositories.

What are all the benifits of this:
- It allows users to use newer modules with older versions (when of
course all functions inside the modules are supported by pilight).
- It allows users to install new modules without having to recompile.
- It allows upgrading modules without recompiling.
- It allows you to easily remove modules not used or which are bugging.
- It allows easier module development. A single module can just be
developed without constantly having to fully recompile pilight.

This feature also add two new settings:

"protocol-root": "/usr/local/lib/pilight/protocols",
"hardware-root": "/usr/local/lib/pilight/hardware"

Both paths are the default paths were the modules are placed.