Better compatible shim for Function.prototype.bind

Existing polyfill is not completely compatible and breaks native
bind usage in underscore.js