Implemented support for 1.5 libraries specification rev.2

- removed "arch" folder support
- allow to optinally use "src" folder
- slightly changed metadata

For more information see:
https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification
http://goo.gl/gfFJzU
Added a warning for library using the no longer supported "arch" folder
Use Files instead of String to handle paths in Compiler class.
IDE do not hide libraries with incompatible architectures
Added "category" field in libraries.
Added "license" field in libraries.
IDE warns if a library is compiled with an unsupported architecture
Added the possibility to override library compatibility check
Removed unused import
GSM library to format 1.5 rev.2
Audio library to format 1.5 rev.2
Use reinterpret_cast to cast __FlashStringHelper to const char*
Use PGM_P instead of prog_char

On later versions of avr-libc, prog_char is deprecated. In 0acebeeff48
the one occurence of prog_char was replaced by "char PROGMEM", which is
not entirely correct (PROGMEM is supposed to be an attribute on a
variable, not on a type, even though this is how things work in older
libc versions). However, in 1130fede3a2 a few new occurences of
prog_char are introduced, which break compilation on newer libc versions
again.

This commit changes all these pointer types to use the PGM_P macro from
<avr/pgmspace.h>. This macro is just "const char *" in newer libc
versions and "const prog_char *" in older versions, so it should always
work.

References #795
Merge branch 'cast' of github.com:Lauszus/Arduino into Lauszus-cast

Conflicts:
	hardware/arduino/avr/cores/arduino/Print.cpp
Fixed value of NUM_DIGITAL_PINS for Arduino Due
sam: moved "variant" methods into proper place
sam: Added digitalPinHasPWM(..) method

Fixes #1342
Improved portability of String class (maniacbug)
Robot Control library to format 1.5 rev.2
Servo library to format 1.5 rev.2