Pyramid caching

refs #6 
y, in other locking implementations I've ditched the event emitter even. The lock value is just an array of callbacks to call:

        // Previous instance creation is in progress (locking).
        if (cache[key]) return cache[key].push(callback);

        // Create a new lock.
        cache[key] = [callback];

        // When i/o op is done ...
        var callbacks = cache[key];
        delete cache[key];
        for (var i = 0; i < callbacks.length; i++) callbacks[i](err, data);