better handling of text viewer access after editor disposal (fixes #79)

When Isabelle theory editor is closed and disposed, getSourceViewer returns null. If there is an outstanding "update perspective" job, it was trying to access the source viewer and caused an NPE (issue #79). Updated "update perspective" call to check for disposed/null viewer.
Also using asyncExec directly instead of a UIJob.
Merge branch 'hotfix/79-npe-update-perspective' into develop