Introduce board abstraction and handlers

This is just a version to get feedback on.

This PR contains a8fb4d0 that is pending review/merge in different PR.

My rationale is: I'm growing tired of cherry-picking changes for my Teensy board. I remember Arduino had things like built-in pins defined per-board, so one demo/example could work on multiple boards.

Does this effort seems OK with you? What would you expect to be in the per-board modules?