Thermistortableless: drop thermistor table usage.

Instead, calculate these values directly. First result is, direct
calculation isn't much more costly than the interpolation required
when doing table lookups.

Goal of this effort is to get rid of the need of creating thermistor
tables and allowing users to set thermistor characteristics directly
in config.h.

For now, this is a regression in two ways:

- It uses floating point math.

- Thermistor characteristics are hardcoded and the same for all
  sensors.

Reason this is allowed for now: one has to start somewhere, both of
the above issues are mostly solved as of this writing.

Regarding performance: while writing the neccessary code chunks,
temp_sensor_tick() was changed to accept an ADC value as argument
instead of reading it from hardware and main() was prepared to call
this functions with all possible values (0 - 1024) with interrupts
disabled. Time needed for each call was recorded by running the
firmware in the simulator with testcases/nothing.gcode.

Mathematical results of each call were recorded, too, to make sure
behaviour of ADC value <=> temperature value conversion wasn't
changed. Mathematical accuracy won't be mentioned in the following
commits, because no code changing it more than 0.25 deg was accepted.

Code size before:
  FLASH : 20164 bytes          141%       66%        32%       16%
  RAM   :  2190 bytes          214%      107%        54%       27%
  EEPROM:    32 bytes            4%        2%         2%        1%

Code size now:
  FLASH : 19942 bytes          140%       65%        32%       16%
  RAM   :  2190 bytes          214%      107%        54%       27%
  EEPROM:    32 bytes            4%        2%         2%        1%

Performance so far:

Before, with ThermistorTable.double.h:
LED on time minimum: 1107 clock cycles,
LED on time maximum: 3198 clock cycles,
LED on time average: 2162,43 clock cycles,

Before, with ThermistorTable.single.h:
LED on time minimum: 741 clock cycles,
LED on time maximum: 1488 clock cycles,
LED on time average: 1364,6 clock cycles,

Direct calculation with Doubles:
LED on time minimum: 1206 clock cycles,
LED on time maximum: 5225 clock cycles,
LED on time average: 4950,59 clock cycles,
Thermistortableless: actually remove thermistor tables.

Thermistor characteristics are currently hardcoded in temp.c,
line 187.

They're still mentioned in the config.h templates, which will be
taken care of before too long.
Thermistortableless: prepare by expanding DEFINE_TEMP_SENSOR().

Now we have 8 values istead of 5, a proper description ... and
no code actually using it. Yet. :-)
Thermistortableless: distribute config.h changes to all templates.
Thermistortableless: use sensor-specific vadc.

This is a first test to use sensor-specific values. Works
apparently well.

Code size before:

  FLASH : 20052 bytes          140%       66%        32%       16%
  RAM   :  2195 bytes          215%      108%        54%       27%
  EEPROM:    32 bytes            4%        2%         2%        1%

Code size now:

  FLASH : 20052 bytes          140%       66%        32%       16%
  RAM   :  2201 bytes          215%      108%        54%       27%
  EEPROM:    32 bytes            4%        2%         2%        1%
Thermistortableless: use sensor-specific r0.

  FLASH : 20078 bytes          141%       66%        32%       16%
  RAM   :  2209 bytes          216%      108%        54%       27%
  EEPROM:    32 bytes            4%        2%         2%        1%
Thermistortableless: use sensor-specific t0.

  FLASH : 20476 bytes          143%       67%        33%       16%
  RAM   :  2217 bytes          217%      109%        55%       28%
  EEPROM:    32 bytes            4%        2%         2%        1%
config_wrapper.h: protect against USB/serial misconfiguration.
Thermistortableless: use sensor-specific r2.

  FLASH : 20478 bytes          143%       67%        33%       16%
  RAM   :  2225 bytes          218%      109%        55%       28%
  EEPROM:    32 bytes            4%        2%         2%        1%
Thermistortableless: use sensor-specific beta.

This is the last configuration value going sensor-specific. Binary
size as well as RAM usage is a bit higher now, because constant
part k is no longer a constant on code. I guess k should eventually
become part of temp_sensor_definition_t, too, to make it constant
again.

  FLASH : 20488 bytes          143%       67%        33%       16%
  RAM   :  2233 bytes          219%      110%        55%       28%
  EEPROM:    32 bytes            4%        2%         2%        1%
Thermistortableless: instead of a divide, multiply with the inverse.

Saves about 300 clock cycles.
Prepare code to do temp calculations, only.

Runs nicely in the simulator.
More integer math.

Saves about another 300 clock cycles. We've closed half the gap
between a floating point calculation and a 100-entries table:

LED on time minimum: 1469 clock cycles,
LED on time maximum: 4523 clock cycles,
LED on time average: 4260,66 clock cycles,
Yet another bit closer to integer-only math.

No performance improvements, this time.

All this move towards integers has brought a small, but noticeable
change in results: large deviations for 2..8 and 0 or +/-.25 for 28+
Likely some rounding errors.
Implement the logarithm algorithm used in the HP-35 calculator.

Remember the HP-35? It was the world's first pocket calculator
doing trigonometric math, starting the end of slide rule usage.

It's an brilliant algorithm, so let's keep it.
Other than HP-35, choose 2 as target number. In theory, this
should be faster than target 10, but actually, it's worse:

With hp_35_log():
LED on time minimum: 1949 clock cycles,
LED on time maximum: 22478 clock cycles,
LED on time average: 14977,3 clock cycles,

With teacup_log():
LED on time minimum: 1949 clock cycles,
LED on time maximum: 24425 clock cycles,
LED on time average: 16669,5 clock cycles,

teacup_log() collect the result as 8.24 fixed point directly.

While this replaces additions/substractions, only, performance
is quite a bit better already:

LED on time minimum: 1937 clock cycles,
LED on time maximum: 16446 clock cycles,
LED on time average: 11528,6 clock cycles,
Spotted a small improvement: a 16-bit multiplication is sufficient.

LED on time minimum: 1879 clock cycles,
LED on time maximum: 16388 clock cycles,
LED on time average: 11470,6 clock cycles,
Move floating point entirely into teacup_log().

This required additional steps to use the full range of an uint32
and keep accuracy. Doing it this way, accuary is still excellent.

As another steps to become fully integer, do normalisation as such.
Go entirely integer.

Performance is back:

LED on time minimum: 1644 clock cycles,
LED on time maximum: 6506 clock cycles,
LED on time average: 5084,92 clock cycles,
int_log(): loop up the multiplication part.

Makes it even a bit faster:

  SIZES             ATmega,,,  '168    '328(P)    '644(P)    '1280
  FLASH : 20222 bytes          142%       66%        32%       16%
  RAM   :  2169 bytes          212%      106%        53%       27%
  EEPROM:    16 bytes            2%        1%         1%        1%

  LED on time minimum: 1646 clock cycles,
  LED on time maximum: 6345 clock cycles,
  LED on time average: 4920,21 clock cycles,