DHCP Hostname Support

This addresses and supercedes pull request https://github.com/jcw/ethercard/pull/88

I've used the testDHCP example with the following calling forms and confirmed they all work as expected using WireShark:

ether.dhcpSetup(); //existing behavior
ether.dhcpSetup(PSTR("Wicked")); // new (optional) behavior (default hostname in Flash)
ether.dhcpSetup("Device", true); // new (optional) behavior (hostname in RAM)