add quick and dirty timeout support for scripting
should one have an infinite loop in the js logic the evaluate() used to block indefinitely.
instead call eval from a thread and if it doesn't finish in time force it to interrupt out of js resulting in an error as result
this is lockless because the gui thread is blocking on the result anyway as plugins don't sport async API