Rename ReflowController.pde to ReflowController.ino

Using extension Arduino 1.5.x GUI expects to see.
Initial minor cleanup, clarification

- Began cleaning up parts of the code and organizing sections to make it
easier to read, no actual changes performed
- Added ARDUINO_TYPE and BOARD_TYPE preprocessor options to configure
the code to the target
Add compile-time LCD rotation setting, usability fixes

- Adds rotation support for LCD, and fixes text and graphics to make
this happen
- Adds define for rotary encoder steps at top of file
- Fixed bug of redefine of LCD_CS in temperature.h
- Menu items are the correct width in either rotation; editing
- Improved splash screen, though flash size is bigger as a result
Register accesses changed to Arduinoisms (portability), more clarifications

- Minor formatting updates to fix inconsistencies and make code match
the original programming style
- Moved LCD physical configuration defines out of the user configurable
area; these are set by the compile time user-configurable LCD rotation
- Made any direct port register code no longer directly access the port
direction and output registers. Code should be fully portable between
nano/mini and micro now, I hope...
- Updated todo list based on findings so far in code and needs of
current application
hardware/ directory cleanup

- Cleaned up kp's design files and documents
- Removed kp's board house DRU, added ignore for .dru
true's Reflow Controller PCB+Schematic

My version of the Reflow Controller.

This is REV2, untested. I have mostly tested REV1 so far. Yes, it is way
more complicated than the original. :)

- Schematic cleaned up and organized. Hopefully this is easier to read
now.
- Supports physically Arduino Pro Mini, Pro Micro or Nano V3.0
- No built in SSR's - this version is intended for 120V, and external
SSRs supporting the current needed for 1500W ovens are cheaper anyway.
Also allows for other options for output. This also means that the FAN
and HTR AC ports are just paralleled with AC IN; they don't need to be
used.
- As there are no built-in SSRs, the board is shorter by 2cm
- Header and connector pinouts labeled on board
- Header pinouts for LCD match the order most commonly found for this
LCD type, making connection easier
- No headers block the top or bottom of the Arduino header, so
programming / USB will not be blocked
- Supports using Nano V3.0's 3V3 output; no need for voltage regulator
(cheaper). Note that there is a low current limit for this but with the
level shifters and MAX31855's we are within this limit.
- Uses more common and cheaper optocoupler for the ZX circuit
- Series resistors for LCD comms (works with cheaper LCDs without this
built in)
- Level shifters for future SD card support
Update .gitignore

Ignore gerbers
Simplify pin output control on heater, fan channels

Since we're hardcoded to two different methods of control for the heater
and fan, and there is no loop, there's no reason we can't just use the
pins for the heater and fan directly. So I do this now. Saves >150bytes.
Add ReflowController\todo.txt

These are the code-side of things I'd like to get done with this
project.
Fix profile load/save can't exit; Made reset harder

- Fixes the bug where you can't cancel loading or saving a profile, or
cancel factory resetting
- Makes factory resetting more difficult by requiring a double-click to
confirm
Make numeric editing text fit in vertical mode
Fix double-click on root items clears the screen

I made this bug in 425764eb29, oops
Updated ReflowController/todo.txt

- Marked off completed items
- Explained some uncompleted items
- Added more items
TimerThree replaced with Timer2, fake_hw fixes

Arduino Mini and Nano does not have TimerThree.
Using Timer2 for fake hardware support.

Fixed various issues when running in FAKE_HW mode. Saved space where
possible in FAKE_HW mode to make room to put other things in to test.

Hardware startup order changed to make more sense.

Double-clicking on not previously activated Factory Reset option will no
longer factory reset the device.

Saved 6 bytes of flash in mainline.
Re-added Timer3 for Micro, removed ARDUINO_TYPE

TimerThree was re-added since the Micro doesn't have Timer2. However,
TimerThree has a bug where it doesn't check to see if the processor is
capable, and either Arduino or the compiler is too stupid to see that
this isn't included anymore after the preprocessor, so either comment
the include out or modify TimerThree to check this.

Removed ARDUINO_TYPE and perform tasks depending on the type of
processor.
Fixed time elapsed for 60Hz systems

The time counter was set at fixed 100Hz ZX; this is now computed based
on LINE_FREQ and now has a proper time elapsed counter.

Timer2 and TimerThree stuff was changed / fixed so this works as
expected in FAKE_HW mode.
Removed weird tempfile
Fix bottom status bar being cut off
Added vertical mode graph display screen

Still need to optimize; the changes and centering code add ~160 bytes to
the compiled size.
Optional support to store text strings in Flash

RAM likely won't run short on this project, but a macro has been added
wrapping all text, which as an example can be used as the Arduino F(x)
macro.

Also changed idleTemp to a defined value; this saved ~50bytes of Flash.

TFT_ defines are now LCD_ defines.

Need to look into why space is a consistent ~70 bytes higher when using
PROGMEM; the lack of variables in .bss should reduce this size, should
it not?