Using move semantics in MicroAutoFilter. This is required in order to avoid copying auto_out instances.
Using MicroAutoFilter to implement Packet::AddRecipient.

NOTE: There is a design choice exposed here that might be altered in the future:
Packets are expected to determine their subscribers on construction, rather than initialization.
The consequences of this are:
(1) When a subscriber is added all packet object pools must be flushed.
(2) When a recipient is added it must be removed during the finalize stage.
If instead the subscribers were determined on initialization the ObjectPool flush would be avoided, and the finalize stage could simply be to clear lists.