improved xHandler trigger() methods to use xThreadPool as needed
added xRunnableEvent child class to handle this
added toString() override method to xEventData
renamed run variable to task in xRunnable to avoid confusion