add move constructors for msg_single_t

this allows us to simplify msg_multi_t
- no need to push in msg_single_t allocated on the heap

addition of string constructors for msg_single_t also allows
us to push strings directly into a msg_multi_t