Button handling, simple RGB stuff, Torch mode

This is me trying to fill @dpslwk's branch with some code. I've started off with the frRGBTask and focused on porting the easy, important bits (e.g. light on/off) and left the rest out for now. I've also created a way for different tasks to subscribe to keys without having to deal with the interrupt handlers themselves and a simple string logger.

I've not done any large scale arduino/C++ code before, so please consider this as a first attempt -- I'm not too worried if this PR is not merged, I'm mostly aiming for some feedback on the structure, code/naming style and the general idea. Any comments are welcome!