bikeshedding: renaming receive_* methods to read_*
generalize message into basic_message

The previous message symbol is now a typedef that expands to a structure
whose definition is the same definition from the message symbol before
this commit.

TL;DR: It's backwards compatible (but only API, not ABI).
fix: message arg in async_write_message is now const