While were at it, we can also enable sign conversion warnings and other
common warnings as errors to prevent these from creeping back into the
codebase.
In a lot of cases, we can make use of const references rather than
non-const references.
While we're in the area we can silence some truncation and sign
conversion warnings.