Sending and receiving bug fixes

 - Receiving timeout actually returns from function (with -1 indicating no data)
 - No longer using the VALID_PACKET interrupt for receiving data as this seems to behave inconsistently. Monitoring operating register for transition out of RX mode instead
 - Introduced similat blocking behaviour for sending, function does not return until packet is sent. This makes alternating send/receives easier as you can gaurentee devise is idle once either function has returned