Fix Debounce example to work as described

This alters the debounce example code to toggle the LED rather than just use
the button state to set the LED state.

Fixes #293
A lot of refactoring on Preferences, custom menus and Boards:
- Merged MapWithSubkeys into PreferencesMap.
- Added TargetBoard class.
- Simplified a bit submenu generation.
Refactored board specific options into TargetBoard
Slighty changed custom menu format: simplifies parsing
Other refinement in TargetBoard
When using cores from other packages also the referenced platforms.txt is imported
See #1157
Fixed check for referenced cores. See #1157
Unused custom menus are not showed
Simplified Boards menu layout.
Fixes #1307
"build.core" property can now be used inside custom menus.
Fixes #1304
Added message for unknown tools.
See #1304
Added auto-generation for 'build.board' value in boards.txt.
See #1305.
The "tool" for burning bootloader is now correctly selected from board
preferences.
Another update on the way burnBootloader builds its configuration.
See #1038 #1176
Changed the way ARDUINO is defined inside platform.txt
Added version field to platform.txt
Added support for all variants of Sanguino
small changes inside the GSM pachube examples
Set correct speed of Arduino ISP programmer
Add library from ZIP

Conflicts:
	app/src/processing/app/Base.java