Deletes the cache for the given constructor, and all others that inherits from its prototype.
Which means if constr === Object, all cache will be deleted.
@param {Function} constr The constructor to delete the cache for.
@return {ProtoLib} The current ProtoLib instance
function deleteCacheForConstructor (constr) {
            for(var i in inheritanceChain) {
                if(inheritanceChain.hasOwnProperty(i)) {
                    if(inheritanceChain[i].indexOf(constr.__get_protolib_id__) > -1) {
                        cached[i] = undefined;
                        delete cached[i];

                        inheritanceChain[i] = undefined;
                        delete inheritanceChain[i];
                    }
                }
            }
            return self;
        }