function _makeBindWrapper(shim, func, context, full) {
  return function wrapper() {
    return shim.applyContext({ func, context, full, boundThis: this, args: arguments })
  }
}
Creates the `bindSegment` wrapper function in its own, clean closure.

@private
@param {Shim} shim
 The shim used for the binding.
@param {Function} func
 The function to be bound to the segment.
@param {Context} context
 The agent context that the function is bound to.
@param {boolean} full
 Indicates if the segment's full lifetime is bound to the function.
@returns {Function} A function which wraps `func` and makes the given segment
 active for the duration of its execution.