XMerge remote-tracking branch 'upstream/master'
Added generic screen protocol
Updated firmware library to work with mp specific versions
Updated the conrad_rsl_switch protocol with a fixed code table
Small fix in the Silvercrest protocol
Added support for Cleverwatts
Fixed small bug in cmake compilation
Fixed some compilation bugs, memory leaks and removed spaces
Fixed small bug in ehome help
updated pilight learn wasn't committed yet
Added Selectremote protocol
Added additional pulse length to rev
Created 3 Rev protocols
Small fix in Rev v1 protocol
Added option to turn on/off modular build
Allow protocol / hardware modules next to integrated code
Fixed small bug in modular approach
Fixed small bug in cleverwatts protocol
Added server and port CLI arguments to daemon
One coding improvement and one addition

1) Made all functions and variables that should be limited
to the local scope static so we don't end up in naming
conflicts that easy.

2) Some protocols use a variable length and really large footers.
The footer filter has been increased from 34000 to 100000 and
the raw lengths can now be a range. The old rawlen is still available,
but two new protocol variables are introduces 'minrawlen' and
'maxrawlen'. When using these new variable to define a raw length
range, make sure the old 'rawlen' value contains the average of both.
These values can be used when receiving protocols that have variable
rawlengths like Ninja Blocks.