Reduce size and clarify type of some integer vars

Trim down the size of a couple of variables as they didn't need to be as
large, clarify the type of some others, and change port from int to
uint16_t to match EthernetServer.
Put flash strings into separate sections

Change the definition of the P() macro under the AVR architecture to store
the strings in sections named after the variables.  This allows unused
strings to be removed by the linker, saving space in the flash memory.

Also change the variable name for all but one of the instances of failMsg
to give the maximum benefit from the above.
Save flash by only storing the server header once

Modify the functions which send headers to re-use one string containing
the server name instead of including it inline in all of the different
headers.