Merge "Upload" and "Upload using programmer" options

This adds a special value "internal" for the "programmer" preference.
When "programmer" is set to "internal", the regular bootloader upload is
used, as defined by boards.txt. For other values of the "programmer"
entry, the relevant info from programmers.txt is used.

This resolves #2046.
Document the "programmer" preference in the manpage