function wrap(value, wrapper) {
    return function() {
      var args = [value];
      if (arguments.length) {
        push.apply(args, arguments);
      }
      return wrapper.apply(this, args);
    };
  }
Creates a new function that passes `value` to the `wrapper` function as its
first argument. Additional arguments passed to the new function are appended
to those passed to the `wrapper` function.

@static
@memberOf _
@category Functions
@param {Mixed} value The value to wrap.
@param {Function} wrapper The wrapper function.
@returns {Function} Returns the new function.
@example

var hello = function(name) { return 'hello: ' + name; };
hello = _.wrap(hello, function(func) {
  return 'before, ' + func('moe') + ', after';
});
hello();
// => 'before, hello: moe, after'