Start making the alarm functionality.

Rework some structs to make them easy to reuse etc.

Implement linked lists, and even the sorting thereof... (Wow!)
Be a bit pedantic
Rebuild if libcwap.h changes
Fix pedantic warnings and add TODO-ish comments on dummy(?) refs
Remember to store the item when you push to a list
Work on alarm stuff, move linked list specific stuff to separate header file
Controlling relays is easy.
Add data persistance
Make sure we accept and handle Python None
Start making a library for parsing and doing actions.

Also, rename alarm.ino to alarm.c as it's not arduino-specific.
Slightly rewrite keypad stuff -> less code, more functionality
Add time of last menu action
Globalify time stuff
Just add a bool flag for inverted actions...

... rather than making a billion actions and counteractions. Use more, but
smaller, actions if needed!
Change semantics of actions a bit.

This allows us to pass the smaller actionmask_t around, leading to lower memory
usage.

Also, rename alarm and alarm back to ino as it's all plenty arduino specific
anyway.
Use enum week_day where appropriate
Use global time variable and simplify menu API
Inline getter and setter for screen backlight
Move serial device define to serial.h for re-use
Nitpick static inline