Various changes from Upstream

This merges all commits from upstream (LCD support and lots of small things) with the improvements of this fork. Yes, this is ugly and includes all kinds of stuff, but splitting it up would be a lot of work.

Why should this be merged? Apart from the code improvements, I think `duino` should return to a common codebase before this diverges into a true fork. Ideally, I wish upstream would merge our PRs, so @ni-c/heimcontrol can actually depend on @ecto/duino, but until then, let’s keep the difference small.