The existing implemented behavior is that of a transfer of ownership, however
it does it without move semantics.
This doesn't change the behavior but makes it explicitly clear that there
is a transfer of ownership via enforced move semantics.
Also includes some cleanup in the packet classes, including converting the
size parameter to size_t. While no packet will ever be large enough to require
64-bits of size, many places that are initializing packets are doing so
with a size_t parameter, so this will address those warnings here.