Adding a Deferred output-only AutoFilter

This test case seems to throw a bad_weak_ptr exception, potentially due to invalid setup operations occuring inside of ObjectPool
Object pool should only attempt to initialize after shared_ptr is created

Sometimes, types in the object pool which inherit enable_shared_from_self might need to call shared_from_this during their Initialize callback.  In order to ensure this callback functions correctly, the actual shared pointer for the object must be initialized before the object itself is initialized.