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
* A minor fix for crash caused by invalid recently loaded files (fixed by changing assert to properly handling the situation) is also included. Actually, this change was not intended to be part of this commit, but if it looks good to others, then it can be merged, too.
Is this indentation shown correctly?  It should be just two spaces.