Also allows the message to be requested for streaming or with REQUEST_MESSAGE We weren't checking for buffer space before sending this out, so it was a possible source of corruption.
This splits the missionitemprotocol handling entirely into separate header files and separate compilation units.