code: function Cache (cache, options) {
    if (arguments.length === 1) {
      if (cache.hasOwnProperty('normalizeKey') || cache.hasOwnProperty('transform')) {
        options = cache;
        cache = {};
      }
    }
    options = options || {};
    this.cache = cache || {};
    this.normalizeKey = options.normalizeKey || function (key) { return key; };
    this.transform = options.transform || function (value) { return value; };
  }
docs: Create a cache that transforms values when setting.
  
  ```js
  function makeKey = function (key) { return key.toUpperCase(); };
  function transform = function (value) { return value.toUpperCase(); };
  
  var cache = new Cache(makeKey, tranform);
  ```
  
  @param {Object} `cache` Object to store the cache on.
  @param {Object} `options`
  @option {Function} `normalizeKey` normalize the `key` when getting and setting
  @option {Function} `transform` transform the `value` when setting
  @api public