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.