Pipeline execution now has a timeout.

Hacked the API to run the executor in a thread that we can monitor.
Unfortunately there is no way to kill the thread without risking
breaking things.

The 'execute' servlet. now returns a new type of error if it had to
interrupt execution