Remove possible race condition in setting and clearing transmitting.
Not from direct handling of this interrupt, but maybe another interrupt
happens right after we set UDR1, which by the time it finishes, the
transmit complete interrupt happens which clears it and returns and we
set transmitting.
Add same speedup from Arduino core, that on Serial1.write, check to see
if output queue is empty and data register empty, if so simply stuff the
character out in the output queue, without needing to use interrupt to
start transmission. Helps speed up fast IO like 1MBS
Also, changed how UCSR1B is updated, to be like Arduino. In particular
it turns on and off specific bit(s) instead of complete set of register.
Needed if you wish to emulate half duplex with this uart.