Added ReusableObjectHolder class

The class ReusableObjectHolder is a thread safe caching
system which allows one to create objects as needed and
be able to reuse those objects once they are no longer in
use.
Merge pull request #4853 from Dr15Jones/reusableObjectHolder

Added ReusableObjectHolder class