Added setRowOffsets to LiquidCrystal library

Original commit by Mark Sproul, but cleaned up by Matthijs Kooijman.
Make the LiquidCrystal row offsets uint8_t instead of int

Since these are memory addresses, there is no need to make them signed.
Furthermore, the HD44780 chip supports memory addresses up to 0x67, so
uint8_t shouldbe sufficient.
In LiquidCrystal::setCursor(), check against length of _row_offsets as well

Before, the row value was maximized against _numlines already, but the
value from _numlines is not limited anywhere, so it could be longer than
the length of _row_offsets. This check makes sure the array bounds is
never exceeded.
Support more LiquidCrystal displays out of the box

Previously, the row offsets were hardcoded to the ones used for 20x4
displays (which woudl also work for all 2-line displays). Now, the
number of columns given is used to calculate the offsets most likely to
apply.

For 2-line displays and 20x4 displays, the (used) offsets are completel
unchanged. With this change, common 16x4 displays and (if they even
exist) other 4-line and 3-line displays might also work (depending on
the hardware configuration used, of course).

See this page for some info on common LCD sizes and configurations
encountered in practice:

http://web.alfredstate.edu/weimandn/lcd/lcd_addressing/lcd_addressing_index.html
In LiquidCrystal::begin(), use a define instead of a hardcoded 0
In LiquidCrystal, remove an unused variable
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
Make the low available memory message a warning

Write the low available memory message to err rather than out so that it
appears more like a warning and is more noticeable.
Robot Control library to format 1.5 rev.2
Servo library to format 1.5 rev.2