code: function Chain(init) {
    this._values = {};
    this._operations = {};
    this._init = init ? P.method(init) : null;
  }
docs: A Chain is a hashtable that forces operations to execute serially for each
  key:value pair.
  
  @param {function(key)} init The initializer to call when a key's value is
  undefined.  It may return a value for the key or a Promise for the value.
  If the init function fails, the process will be killed.