Fix a bug with Cancelable#cancel(String)

The various implementations of this method (which are all copy-pasted
from one another, due to Java's single inheritance limitations) all
suffered from the same bug: calling `cancel(null)` would not actually
cancel the operation. Actually, this was the intended design (so you
could potentially "uncancel" an operation), but I decided that:

1.  Uncanceling is not something anyone should need to do;
2.  It violates the PoLA for `cancel(null)` not to cancel things;
3.  The ModuleRunner calls `cancel(e.getMessage())` from a caught
    ModuleException, which wouldn't actually cancel the module execution
    if the exception had a null message, which it did thanks to the
    AbstractInputHarvester doing `throw new ModuleCanceledException()`.