Added LiquidCrystal_I2C library to ArduinoAddons
Added Config variables for activating I2C LCDs and setting type and address
Added I2C port expander support to HD44780
Added import of Wire Library to make I2C LCD support compilable
Made i2c mode wok with the hardware I am able to test (ywrobot  / sainsmart i2c LCD 2004)

Removed incorrect LiquidCrystal_I2C Library
Converge all I2C LCD branches (PANELOLU2, VIKI & PCF8575)

This includes refactoring the buttons code to remove a large amount of
non-pin dependent duplication from pins.h.
Fix Configuration.h file to not define LCDs be default.

Also fix compile time check in Marlin.pde
Attempt to address Bernhard's comments

Refactor configuration to try to make items clearer (what defines a
panel vs what is user changeable).
Implement automatic extruder/cold-end fan control based on temperature

This change allows fan outputs to automatically turn on/off when the
associated nozzle temperature of an extruder is above/below a threshold
temperature.
Multiple extruders can be assigned to the same pin in which case the fan
will turn on when any selected extruder is above the threshold.
It also makes the M42 command compatible with the M106/M107 command.
The majority of the logic in this change will be evaluated by the
compiler at build time (i.e, low code space requirements).
Further reduce code by using precompiler logic
Number of extruders is not an advanced configuration - it is a basic property.
Support encoder click on PANELOLU2 being read through I2C

This change also handles the case where the pause/stop/restart button on
the VIKI is not used. Make LCD I2C buzz sound the same as the normal
buzz (300ms is too long for quick feedback).
Updated for LiquidTWI2 library version 1.2.3

The new version of the library means that PANELOLU no longer needs to be
defined in LiquidTWI.h (the library file can be used as is) and the new
version of the library also enables the buzzer on the Panucatt VIKI
panel.
Allow Edit menu to call fn after edit; Fix PID Ki and Kd display in menus; Actually use changed PID and Max Accel values

Add new 'callback' edit-menu types that call a function after the edit is done. Use this to display and edit Ki and Kd correctly (removing the scaling first and reapplying it after). Also use it to reset maximum stepwise acceleration rates, after updating mm/s^2 rates via menus. (Previously, changes did nothing to affect planner unless saved back to EEPROM, and the machine reset).

Add calls to updatePID() so that PID loop uses updated values whether set by gcode (it already did this), or by restoring defaults, or loading from EEPROM (it didn't do those last two). Similarly, update the maximum step/s^2 accel rates when the mm/s^2 values are changed - whether by menu edits, restore defaults, or EEPROM read.

Refactor the acceleration rate update logic, and the PID scaling logic, into new functions that can be called from wherever, including the callbacks.

Add menu items to allow the z jerk and e jerk to be viewed/edited in the Control->Motion menu, as per xy jerk.

Conflicts:
	Marlin/language.h
Fix failure to compile with heated bed: remove call to non-existant scaleBedPID().
Lower the default max E feedrate a bit. With the stepper fix this is much to high.
Fix: Build error when EEPROM_SETTINGS is defined and PIDTEMP is undefined
Merge pull request #449 from Stefanowicz/Marlin_v1

Fix: Build error when EEPROM_SETTINGS is defined and PIDTEMP is undefined
Updated the card menu and watch messages to make it more informative.
Merge branch 'Marlin_v1' of github.com:ErikZalm/Marlin into Marlin_v1