Address two issues with Macro.getOptions()

The design of Macro.getOptions() demonstrates that ImageJ 1.x was really designed as a single-thread application: if you launch another thread from a plugin and call a `GenericDialog`, it will no longer see the macro options.

In general, one can work around that by forcing the macro options to be set *again* inside the newly spawned thread (and ensure that the thread name starts with `Run$_` for some reason). But in SciJava's `ThreadService`, a thread pool is used, so that option is out.

This PR allows legacy hooks to provide additional information about thread relationships (essentially looking through the entire thread ancestor list to find the macro options), and it also removes the limitation that macro options are only seen when the current thread's name starts with a magic prefix.