TDynamicObjectPool

A generic pool used to dynamically allocate objects Objects are stored as SharedPtrs Objects are returned as SharedPtrs So resetting the pool won't auto-delete items created by the pool