Fix bug with Delayed actions.

I guess I was too trusting with the execute timestamp.
Previously the Delayed action scheduled its interval straight away.
Now the interval needs to know its execution timestamp in case it
is transferred. I was taking the provided exection stamp and adding
the delay, but then subtracting out the current timestamp
when scheduling.

So a delay of 0 and an "execute" timestamp in the past would cause
a problem.

- Ignore the execute timestamp. Always schedule at a delay from the
  actual time at which execute() was actually called, as it used to.
- Prevent negative delays. Perhaps this could happen if something
  is transferred?