fix div/multiplication error in param.hpp

+ minor style/doc changes

also, most of the library will be unoptimized even though the library
project is optimized, because most of it is in headers. The
optimization problem needs to be fixed. Also look into whether Enabling
pre- and post-optimization instruction scheduling breaks the build.
make WDT initially disabled

all 3 main projects enable as their first action
push nu errors into its own namespace

we could use a static class instead, for this and for timer.hpp
switch nu errors to functional macros
Workaround aforementioned library build problems

using non-inlined NORETURN static "main" function in the library, whose
definition is in a Library translation unit. It is called by the
now-trivial projects' main.cpp, and it enables the WDT and actually
instantiates the Board object.

The (first ever) nontrivial library build time is a good indication
that the crapload of optimization flags passed are actually being
followed.

Also:
several functions now take const values or constant references to
arguments, instead of just values (led.hpp, pinctl.hpp, timer.hpp,
nokia5110.hpp).
Please review and tell me what you think. I don't know whether
ALWAYSINLINE optimizes this out.

the assembly of a trivial program suggested that it makes no difference
when ALWAYSINLINE is used. Without it, passing by reference sometimes
slows it down.

Also, move Functional-Macro definitions & their function-like macros to
the top of files.

regression: There is something very wrong with steering_wheel.hpp. It
throws an error when Loading symbols. Over a dozen unrelated lines
cause this. Primarily any usage of stringstream in uLCD28PT. No other
boards experience this