Combine and converge other I2C LCD branches (PANELOLU2, VIKI & PCF8575)

This combines Pull request #404 & #400 as well as adding support for the Panucatt Viki display.
This change also tries to separate chipset from specific LCD implementation (e.g, the PANELOLU2 and Panucatt VIKI share the same Adafruit MCP23017 chipset but differ in how peripherals are connected to it). 
I also did a refactor of pins.h. There was a lot of duplicated content which had no relation to actual Arduino pins - so moved to this to the lcd implementation file. 
Tested on RAMPS with VIKI LCD. Also tested to compile with PANELOLU2, YWROBOT & plain ULTIPANEL.