Fixed a weird memory issue.

For whatever reason, when calling from recvPayload into a
std::function which didn't move the rvalue Payload, one of the
payloads in the recvQueue would be corrupted (bytes_ = 0x20).

I have no idea why but the only explenation that I can think off is
that GCC assumed that it would be moved so it did naughty things to
the object. I have a feeling that this is UB so I should look it up.
The loop in Pack<vector<size_t>>::size() does indeed get optimized out.