Arduino class now reads through events instead of polling.
The last event update is stored in a cache, allowing for very fast reads
by other parts of the application. Consequently, the behaviour update
period has been lowered significantly.
Abstracted code from Arduino into IncomingInteraction
Incoming serial data is now parsed in one location instead of scattered
Added features to the behaviour system
- A behaviour's action is executed only once if it's trigger is
triggered multiple times in a row

- Behaviours now can have actions that are called once it's triggers af
stopped being triggered

- Behaviours can now define their own update period in milliseconds. If
not defined, there is a default value in the config file.