Fix serial erorr handling and add enums for clarity
- Update errno with error values and return negative on errors, 0 on success
- Add errno values we are interested in missing from avr-libc
- Boolean type added, used by serial_run()
- Parity type added, used by serial_mode()
- Fix serial_mode() argument order to be more like serial port descriptions
- Fix off-by-one on port validity check in most places