Put optional features into their own header files.

The features now export export their functionality as "static inline"
when enabled or as an empty define when not. This allows us to get
rid of many of the "#ifdef"s in function bodies, and makes them a bit
better to read.

This also includes the idle poll counting, which can now be disabled
completely, which save a few bytes in jumper mode.

The macros in "portnames.h" can be used to generate the special function
register names for port access. For example, PORT_DDR(B) expands simply
to DDRB, but B itself can be a macro too (LED_PORT ...)

Since now all the stuff that was formerly in bootloader.h is either somewhere
in hardware/ or in one of the new includes, bootloaderconfig.h has become
obsolete and has been removed.
More work on the makefiles

* auto-dependency tracking for bootloader.

* remove the avr-size invocations when generating the .hex/.raw files.
  Instead, add a small shell script that lists all targets in a table,
  this script is also called after building all targets.

* reduce noise and add missing activity indications.
Use "portnames.h" in upgrade too.
Avoid 16-bit operations in eraseApplication().

This saves 8 bytes.

Also moved the call to __boot_page_fill_clear() into main, which is the right
place for it according to the comment. This saves another 2.

Size for tiny-85-2 now: 2088 bytes.
Two new hw configs, updated readme.

Added two new configurations which both use KEEP_OSCCAL.

With only 2014 bytes, "tiny-85-jumper-ko" is the smallest RC configuration so
far.
Fix jumper mode

The jumper pulls the signal down, not up.