Fixed missing NOT_AN_INTERRUPT constant in digitalPinToInterrupt()

Fixes #2379
Revert "Match return value to type in available()"

This reverts commit f40e4713542fa862d5b99b256a642e001a796988.
Added an hint for the buffer sizes.

See #2057
Fixes #2367
Updated revision log
Merge branch 'master' into ide-1.5.x

Conflicts:
	hardware/arduino/cores/arduino/HardwareSerial.cpp
	hardware/arduino/cores/robot/Arduino.h
[sam] Added -MMD flag to tell compiler to produce dependencies files

Now a full rebuild of the sketch is triggered only if needed.
build.xml: restored -z flag in tar creation
Ethernet: fixed upcast of byte-pointer
Ehternet: added packed attribute on DHCP message struct
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.
Removed some trivial warnings
Removed some warning from Editor class
Refactoring of Theme class
Refactored and simplified EditorConsole class.
Splitted GUI and Streams in EditorConsole
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 SketchCodeDocument container class.