Adding End of Line handling and support for 20x4 displays

I was using this code with a RPi and the MCP230xx without the plate and found a need to update it with support for 20x4 (or any size that runs the HD44780 really) This also helps with some of the odd carriage return things. with more than 2 lines. See my test script for demos