Updates structure to ES6, modifies caches to use linked-lists instead of dynamic arrays, and provides flexibility regarding whether recycle
and setUp
methods should be mixins on cached objects. As such, the add
method has been changed and extended to handle these changes. See the README for new syntax.