Added function to return ECEF coordinates for a satellite given the TOW
Make user have to pass a specific TOW to Sat.ecef()
Add __del__ and stop methods to remove bootloader callbacks
Adding one_click_update, currently just gets called from console
__init__ method. Need to make it a thread and add a button.
Fix rm_callback function in serial_link
Create "update_firmware" function to make one_click_update function
cleaner
Simple popup to prompt user if there is new firmware available
SettingsView class now takes a list of argument-less functions to
be executed after settings read has finished.
Pass dict reference for settings to SettingView so external objects can
access the settings
Queue up messages in SerialLink.send_message before sending to allow
multiple threads to access SerialLink object
Add thread locking before pulling messages out of queue and sending them
Update firmware button finally working
Cleaning up a bit more
Popup window text working
Prints to stream working properly now
Implement OutputStream.flush function via pyface.API.GUI.process_events() call.

Give Flash.write_ihx optional stream to write to, and modulo argument to
reduce number of prints.

Use these changes to for printing in OneClickUpdate
Use console's OutputStream for prints and bring up prompt to notify user
if their console is out of date
Fixing up prints
Add sys.stdout to Flash.write_ihx arguments, write_ihx now requires a
stream to be passed for printing output
Change SettingsView and OneClickUpdate so that OneClickUpdate can be
passed SettingsView.setting with a function rather than when
instantiated