Explicitely store a layout type for a library

Previously, the useRecursion and srcFolders were filled on library
creation, based on the existence of the src folder. Now, a layout
variable is set, and the useRecursion() and getSrcFolder() methods
change their return value based on the layout in use.
Let Sketch.getExtensions() return a List

This simplifies upcoming changes.
Use SketchCode.isExtension in more places
Don't store the extension in SketchCode

Nobody was using it anymore, except for checking against specific
extensions, which is easily done against the filename itself. This
prepares for some simplification of Sketch.load next.
Removed unused Base.getBoardsViaNetwork() and related member.
Refactoring of Theme class
Removed some warning from Editor class
Refactored and simplified EditorConsole class.
Splitted GUI and Streams in EditorConsole
Removed some trivial warnings
Rationalized Preferences and Theme classes.

Removed a lot of duplicate/unused code. Preferences un-marshalling
is now handled in PreferencesMap class.
Removed GUI dependencies from SketchCode class.

Moved GUI fields into a SketchCodeDoc container class.
Make Compiler independent from Sketch.

Create a class SketchData to store all relevant data for a sketch
(trying to keep GUI stuff out of the way).

Moved preprocessing code from Sketch to Compiler.
Reintroduced 'Next Tab' and 'Prev Tab' click actions
Applied (a sort of) decorator pattern to SketchCodeDoc.

SketchCodeDoc renamed to SketchCodeDocument.
Compiler is now independent from SketchCodeDocument.
Made Compiler and PdePreprocessor independent from Preferences.

Created a class PreferencesData to manage all parameters except the ones for the GUI.
Removed GUI parameters management from ParametersMap.
Created ParametersHelper class to help with GUI parameters management.
Used ParametersHelper in Themes.
Moved some code from Sketch to SketchData.
Created PApplet and PConstants wrapper classes.

Also removed unused ColorSelector and CreateFont to reduce wrappers
size to the minimum.
This commit is preparatory for dropping dependency on processing-core.
Drop dependency from processing-core project.
Refactored OS detection subroutine.

Moved from Base into a specific utility class OSUtils.
Removed unused platform constants.