This is basically working, but still needs revisions to take advantage
of the new information being stored in the image data. It should be
possible to do all the temporary inventory work directly on the image
file so that no put-back-in-inventory steps will be needed any more.
Much nicer.
Well that was a lot of work. Also, switched the "waiting" timer
management to the actual on_timer system - I noticed that minetest.after
wasn't persisting through server shutdown and restart, that could put a
controller in a "broken" state.