Fix for thread inheritance and diagnostic context.

If another class inherits from the `Thread` class and defines an initializer,
the diagnostic context inheritnace monkey patching will break. It relies on
the fact that the normal Thread `initialize` accepts any number of arguments
and passes them to the block.

/cc @igorbernstein @samg