Changes
Fix errors; inheritance and scope in threads (bugs in prepare)
Fix fault; accessing destroyed objects (throw ex)
Make use of inheritance within pthreads (bc compatible using alias)
Remove abstract flag from ::run method
Remove use of errors in favour of exceptions
Remove all final modifiers on threaded objects
Fix fault; submit to incorrectly constructed Pool
Fixed fault; (re)using primitives that are object members across contexts
Fixed fault; intermittent fault on session_start inside threads
Various internal improvements