Merge in a number of upstream changes from Bouffalo, resolving
conflicts. Most conflicts came from warring whitespace fixes, which is
better than no whitespace fixes in either repo. I generally took the
upstream version in such cases to make future merges easier.
I have left out all upstream docs changes from this merge, since those
will have to be separately merged into our bl602-docs submodule.