fixing style complaints
Add failing regression test
Truncate changes array properly
Implement warnings propagation.
Make this actually load in gdb without error
Per @mlucy, lose the std::string call.

I am unhappy about this in the abstract because `const char *`s and
`.c_str()` everywhere don't really belong in a C++ codebase--but the way
we do `wire_string_t` is sufficiently awkward that it's actually easier
to use the C strings.  I want to fix that, but not as part of this issue.
Per @mlucy, use rcheck_datum.
Per @mlucy, use const auto & for these loops.
Actually use warnings field
Merge branch 'next' into sam_2156