Added test for nullptr decoration.
Added test for repeated calls when constructing or destroying a packet.
Methods with auto_out as only argument are called twice during construction of packet.
Prevent multiple calls during construction.
Creating separate Initialize and Finalize referenced functions for ObjectPool.

This causes some AutoFilter tests to fail.
Whitespace twiddles.
AutoPacket has Reset, Initialize and Finalize methods. Now, all tests pass.
Say what type T is on decoration-already-exists error, #9891
Make all type repetition errors explicit about type in AutoPacket.

In order to see the output of an error, just remove the corresponding EXPECT_ANY_THROW enclosure in TEST_F(AutoFilterTest, VerifyNoMultiDecorate).
Adding test for shared_ptr reduction to base-type for type redecoration.
Adding life-cycle testing to AutoPacket. Presently, the lifecycle assumptions are not satisfied.
Restructured ObjectPool to satisfy AutoPacket (or any other object) lifecycle contract. Presently, AutoFilterTest hangs.

- The first call on any issued AutoPacket is Initialize() and last call is Finalize().
- The internal store of objects is now a vector of unique_ptr objects. This avoids calling m_final incorrectly and allows the release() method to be used when issuing objects.
- Move assignment between object pools now swaps pools instead of copying.
Adding AutoPacketFactory::GetOutstanding in order to test correct outstanding counts.
Fixed incorrect count of issued packets in ClearCachedEntities().

- This addressed the problem in which the AutowiredTest suite would halt at AutoFilterTest::SingleImmediate.
- The AutowiredTest suite now halts at ObjectPoolTest::CanRundownOneIssued.
- The count was correct when destruction of objects in the pool would trigger an decrement of m_outstanding.
- The incorrect count was triggered because adding an AutoFilter to a context required flushing the pool of packets.
- The pool flush seems to have been required because the destructor introduced in Wrap would have an incorrect version number.
- The use of Wrapped packets in the pool is because std::unique_ptr is not available in all build configurations.
Fixed incorrect count of issued packets in SetMaximumPooledEntities().
Removing life-cycle consistency checks from AutoPacket.
Adding an outstanding count reference to AutoPacket
Merge branch 'ref-implicitdecoration' into bug-packetholdwait