Add option to set an external arduino libraries directory.
All libraries from this folder will be compile and available for use
in the gateway.
Some Arduino libraries can be used on Linux/RPI with minor adjustments,
but there are some that will have to be completely rewritten.
The build process uses a separate folder for objects and binary files
which can be set by the user.
Initialize the bcm2835 inside a class constructor to fix cases where
pin operations are used before hwInit().
Fix SPI pins default values.
Fix activation interrupt functions.
Fix some headers.
Rename gateway binary and services to mysgw.
* Add critical section support
Allows defining a code block which is executed as a critical section.
Supports AVR, ESP8266 & SAMD.
* Add receive message buffering
When MY_RF24_IRQ_PIN is defined (and connected), a buffer will be used
to retrieve & store messages received by nRF24 as fast as possible.
This reduces the chance of losing messages due to a busy
microcontroller.
nRF24 SPI rx message transfer is running from interrupt context when
MY_RF24_IRQ_PIN is defined. If this transfer takes too long, serial
characters received will get lost. Therefore serial rx is enabled during
SPI transfer of nRF messages.
Limitations: Only AVR/SAMD & nRF24L01+ combinations can buffer rx
messages.
nRF24L01+ IRQ pin should be connected to AVR.
Tested on W5100- & Serial-gateway.
SAMD has not been tested yet!
* Fix Doxygen warnings
* Fix more Doxygen warnings