Made LockedObjectMixin's lock public. TreeAscensionSearch now pickles its cache on __del__ and can optionally unpickle a previously pickled cache during __init__