Add _.before() function to negate _.after()

I'm not sure if this PR belongs in this repository or the contributing repository, please let me know if I need to move it.

I couldn't find any simple way to limit the number of times a function runs using existing underscore functions. I came up with a non-underscore solution, and it turned out I reverse engineered something similar to the `_.after()` function.

Unlike `_.after()`, which only runs a function after it has been called n times, `_.before()` runs a function _until_ it has been called n times.

An example usage of this behavior is adding items to a list. I set up a function to add the items to the list, but I want to limit the number of times an item is added. An underscore alternative would be something like using `_.after()` and null the function after n calls.
`else func = null` so `func` can be gced?