This removes the need for the user to define... most things, honestly.
Notably, `main()` is no longer the end user's responsibility. This also
allows us to do fun stuff going forward like validating keymaps for
sanity (ex: the key assigned to `KC_MO(x)` should be assigned to
`KC_TRNS` on the target layer or the user will never be able to escape
that layer).
This also disambiguates `BOARD` to always refer to an actual slab of
silicon, renaming to `USER_KEYMAP`.
Entrypoints are now a bit more wild, and mostly-unsupported boards no
longer have working entrypoints. It's probably just time to scrap those
boards for now (until we have BLE HID and/or bitbang USB HID, at least).
- Lock our vendored dependencies (also pull in some new ones I will be
needing soon)
- Ensure we have a sane way of pulling those vendored dependencies into
the DFU-flashable images (upy-freeze.txt)
- Break up the Makefile into a bunch of smaller, sometimes reusable
chunks
- Add a noop keyboard that simply exits, so we can flash a "keyboard"
that just dumps us straight to REPL
- Remove my personal ampy config since that's not portable at all