Fix "implicit argument passing of super from method defined by define_method() is not supported. Specify all arguments explicitly."
Add a method to get the current memory usage.
Don't allow a bloated job to permanently keep a worker's memory usage high.
Don't check memory after every job.

* From my benchmarks, it takes about 3-4ms to get the
  current memory usage since we shell out since ruby
  doesn't provide us with a system call API for that.
* I don't want to add 3ms to the time it takes to run
  every job.  Adding 3ms to every 10th job isn't so
  bad, though.
Add optional debugging info for this spec, and increase timeout.

Travis needs more time for this spec.
Use proc-wait3, when available, to get memory usage.

It's much, much faster (see the benchmark!).
Move memory monitoring logic to a middleware.

Dan rightfully pointed out that this logic
doesn't really belong in the core worker and is
much more appropriate for a middleware.
Add nicer formatting.
Switch from a multiple to an absolute value.

This is easier to reason about and less prone
to flapping based on the initial memory varying.