add serial_poll and read_eoi functions to avoid awkward send_sync
use serial_poll/2 and read_eoi/2 instead of gross send_sync/3
retrieve_data is a 2-tuple
retrieve_data is now a 2-tuple
call -> cast