mocks/jobs: added fail and error mock jobs
mocks/jobs: ensure events fire in sequence

The timeouts were unreliable - sometimes the complete event would fire before
the data events all fired. So now we wait for each event to fire before firing
the next one. This also makes it much easier to handle very low timeouts (like
0).
mocks/jobs: round down possibly non-integer interval

This ensures that setTimeout works as expected (don't want to find out what
happens on non-integer timeouts).
mocks/jobs: style (even indentation)
mocks/jobs: style (reduce -> map)
mocks/jobs: changed default timeout to 0

Now that events are guaranteed to be emitted in sequence, there's no need to
default to an arbitrary 500ms delay (which slows down tests).
Merge pull request #9 from Clever/failing-mock-jobs

mocks/jobs: added fail and error mock jobs