ENH: Added developer mode and base classes for scripted modules

* Added "Enable developer mode" option in the application settings
(Developer section, next to Enable QtTesting)

* Added base classes for scripted module, widget, logic, and test: they
make scripted modules simpler and shorter and also more functions and
helper methods can be added in the future without changing each scripted
module
** Module handles selftest registration
** Widget handles reload&test (shown on GUI only in developer mode)
** Logic and Test contains delayDisplay utility function

* As an example, updated ScriptedLoadableModuleTemplate and SurfaceToolbox to use the new base classes

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23506 3bd1e089-480b-0410-8dfb-8563597acbee