Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Allow modes to have default extensions other than "pde".

Aside from not crashing anymore, this patch changes mode-switch behavior as follows:
If you're in FooMode, and you're in an unmodified, empty sketch, the FooMode editor
is closed, and a BarMode editor is created. If you're in an unmodified, non-empty
sketch, it remains on-screen, and a new BarMode editor is created.

Fixes #2419 and #2420.
Merge branch 'master' of github.com:jdf/processing
Prompt user to select a Mode when no sketch.properties are present.
Merge pull request #2441 from jdf/master

Allow modes to have default extensions other than "pde".