Split into separate files

Up to now, we developed everything in a single `main.c` file. However,
already a couple of groups of functionality have emerged:

* Timer and all related things.
* Controller-specific things such as `reboot_to_isp`.

Soon we will start adding definitions for all Megawin-specific special
function registers, there are lots of them, and it’s not desirable to
clutter up `main.c` with them. So this seems a good time to split our
program into several compilation units.

* Timer goes into `timer.h` and `timer.c`.
* `reboot_to_isp` goes into `mg84fl54bd.h` and its corresponding `.c`.

The `Makefile` becomes a bit more complex, as it now has to separately
compile each `.c` file and then link the final program from object
files.