send all errors after first to optional error callback

- first error goes to callback, the rest are sent to an optional error
  handler. This way error information is not lost
- throw if after is called too many times
add egg test

After first error, good calls will not call the error handler or any
other handler
Merge pull request #5 from Raynos/err_fn

send all errors after first to optional error callback