Replace the memset/strncpy dance in CMessageHeader::CMessageHeader
with explicit code that copies then name and asserts the length.
This removes a warning in g++ 9.1.1 and IMO makes the code more readable
by not relying on strncpy padding and silent truncation behavior.
https://github.com/bitcoin/bitcoin/pull/16995/commits/b837b334db5dd6232725fd2350928ff4fbd3feee
This is a partial backport of Core PR16995