crimson: fix non-standard C++ constructs in errorator.h
Fixing use patterns accepted by gcc, but frowned upon by Clang:
Put noexcept specifier after attributes specifiers (as
per the C++ standard $11.3.5)
Limit the use of a not-completely-defined class names to
within function bodies, per the standard ("A class is considered
a completely-defined object type (or complete type) at the
closing } of the class-specifier.
Within the class member-specification, the class is regarded as
complete within function bodies, default arguments, noexcept-specifiers,
and default member initializers (including such things in nested classes).
Otherwise it is regarded as incomplete within its own class member-specification.")