Assorted UART driver reliability fixes
Assorted UART driver reliability fixes

The biggest change was fixing a memory leak when packets are
received too quickly.

Change-Id: I89da9af13027ec43f412056b16ddeba589f8439d
Reviewed-on: https://robertou.com/gerrit/495
Tested-by: Jenkins CI
Reviewed-by: Kyle Zentner <f75b86e3af539008d20a21b76724217a6a08bb10@pioneers.berkeley.edu>

jessicakam/tenshi,hozhu123/tenshi,hozhu123/tenshi,SamboyKirk/tenshi,cduck/tenshi,zentner-kyle/tenshi-old,jessicakam/tenshi,cduck/tenshi,zentner-kyle/tenshi-old,tobinsarah/tenshi,jarzofjam/tenshi,cduck/tenshi,jessicakam/tenshi,JaronArmiger/tenshi,jarzofjam/tenshi,zentner-kyle/tenshi-old,pioneers/tenshi,pioneers/tenshi,SamboyKirk/tenshi,chuen0630/tenshi,chuen0630/tenshi,chuen0630/tenshi,JaronArmiger/tenshi,jessicakam/tenshi,jarzofjam/tenshi,jarzofjam/tenshi,hozhu123/tenshi,abhishyantkhare/tenshi,cduck/tenshi,JaronArmiger/tenshi,zentner-kyle/tenshi-old,hozhu123/tenshi,pioneers/tenshi,JaronArmiger/tenshi,chuen0630/tenshi,abhishyantkhare/tenshi,abhishyantkhare/tenshi,tobinsarah/tenshi,tobinsarah/tenshi,chuen0630/tenshi,pioneers/tenshi,SamboyKirk/tenshi,SamboyKirk/tenshi,jessicakam/tenshi,SamboyKirk/tenshi,JaronArmiger/tenshi,abhishyantkhare/tenshi,chuen0630/tenshi,SamboyKirk/tenshi,SamboyKirk/tenshi,jessicakam/tenshi,jarzofjam/tenshi,zentner-kyle/tenshi-old,cduck/tenshi,pioneers/tenshi,abhishyantkhare/tenshi,zentner-kyle/tenshi-old,tobinsarah/tenshi,tobinsarah/tenshi,pioneers/tenshi,chuen0630/tenshi,pioneers/tenshi,abhishyantkhare/tenshi,jarzofjam/tenshi,JaronArmiger/tenshi,abhishyantkhare/tenshi,hozhu123/tenshi,jarzofjam/tenshi,cduck/tenshi,jessicakam/tenshi,tobinsarah/tenshi,hozhu123/tenshi,cduck/tenshi,hozhu123/tenshi,tobinsarah/tenshi,JaronArmiger/tenshi