code: function(k, opts) {
          var ctx = u.context(SMALL);
          logger.debugl(function() {return ['Invoke remove(msgId=%d,key=%s,opts=%s)',
                                            ctx.id, u.str(k), JSON.stringify(opts)]; });
          var decoder = p.decodePrevOrElse(opts, p.hasSuccess, p.complete(p.hasSuccess));
          return futureKey(ctx, 0x0B, k, p.encodeKey(k), decoder, opts);
        }
docs: Remove options defines a set of optional parameters that can be
  passed when removing data.
  
  @typedef {Object} RemoveOptions
  @property {Boolean} previous - Indicates whether previous value
  should be returned. If no previous value exists, it would return
  undefined.
  @since 0.3
   
  Removes the mapping for a key if it is present.
  
  @param k {(String|Object)} Key whose mapping is to be removed.
  @param opts {?RemoveOptions} Optional remove options.
  @returns {module:promise.Promise.<(Boolean|String|Object)>}
  A promise that will be completed with true if the mapping was removed,
  or false if the key did not exist.
  If the 'previous' option is enabled, it returns the value
  before removal or undefined if the key did not exist.
  @memberof Client#
  @since 0.3