make JES program initialization threadsafe

Hooray! Now, JES starts with absolutely zero threading errors reported
by the repaint manager. This was accomplished by carefully slicing out
all the GUI-related code from JESProgram.__init__ into a separate
@threadsafe method, leaving any interpreter-related code on the main
thread so that any invokeAndWait calls would work as expected.

This involved fixing a bug similar to the one fixed in cdc77cb on the
debugger control panel, where changes to actions' enabled states were
not made on the EDT. The fix was also similar to cdc77cb, as it
involved throwing @threadsafe decorators on the cpanel.
move JES Python startup into separate file

Now, the JES startup code lives in jes/python/jes/__main__.py, which
JESstartup invokes using the -m flag to Jython. This gives us more
flexibility in the early launch stages.

(This code was originally written to experiment with calling the whole
JESProgram constructor on the EDT. That didn't work out, but I still
think it's a good change.)