Страшновато выглядит, да? Работает так (по строкам):
  1. Вызов `bind` сохраняет дополнительные аргументы `args` (они идут со 2го номера) в массив `bindArgs`.
  2. ... и возвращает обертку `wrapper`.
  3. Эта обёртка делает из `arguments` массив `args` и затем, используя метод [concat](http://javascript.ru/Array/concat), прибавляет их к аргументам `bindArgs` (карринг).
  4. Затем передаёт вызов `func` с контекстом и общим массивом аргументов.