assert that the function is called at least min times, and at most max times.
if min, or max is null, then that bound is not checked. i.e. mac(fun).isCalled(null, 10)
will assert that fun is called not more than 10 times.

check all rules passed. must be called once you are sure all calls are finished.
for example process.on('exit', mac.validate) is a good time. validate in necessary
to check that lower bounds of isCalled and aliases where met.

call validate on process.on('exit', mac.validate).
if process.on is not available (as on the browser) wait until browserTimeout instead.
testling ci kills tests after 30 seconds, so by default
browserTimeout = 10e3 (10 seconds)