qt: threadrunner: use a type for the ThreadRunner task IDs
There was a mix of quint64, size_t and uint64_t.
The use of size_t may break on 32-bit systems (after a very long usage).
Also avoid using runner pointers that were never freed. And std::optional on stored taskIDs.
Edited by Steve Lhomme