Don't exit ListenerThead if there's an exception. Print out Exception
and continue running. This was causing ListenerThread to exit after the
v0.10 console UART state callback received the v0.8 firmware UART state
message and threw an exception on the length of the data, keeping the
console from being able to send messages to update the Piksi's firmware.
Don't list non-virtual com ports when prompting user to select Piksi's
serial port.
Initial width of 200 for PortChooser to make more readable
Exit console without an exception when no serial port is chosen
Don't wait for ctrl+c to exit after finishing bootload.
Handle KeyboardInterrupt and other exceptions that occur while erasing
and writing flash.
Move registering of default print callback until after we reset Piksi so
we don't get extraneous messages from the application before reset.
Clean up comments.
Change firmware update from a prompt to its own tab.
Script for provisioning a development environment.

Automates and updates the developer tools instructions that are
currently at
http://docs.swiftnav.com/wiki/HOW-TO:_Setting_up_developer_tools_for_Piksi. This
has only seriously been tested on OS X 10.9.* on my personal machine so far.

r=@fnoble,@cbeighley,@njoubert,@imh,@kovach,@gsmcmullin
Added splash screen citation.
Remove self.write and use print instead, now that print redirects to the console instead of stdout
Add 'update' object to Python console commands
Change firmware_update_view to update_view
Uncomment NAP firmware update. Was commented out for testing.
Remove stream passed to UpdateView now that it's just using print.
Remove second unnecessary instantiation of SettingsView in console.py.
Allow UpdateView thread to run multiple times.
Fixing bugs from feedback, misc. improvements.

Addresses several issues around boostrapping the OS X install, leaving
out Python virtualenvs. Also, includes a Vagrantfile for testing the
Linux installation.

Linux tested via Vagrant. Tested OS X with a virgin account.

r=@cbeighley,@kovach,@fnoble
String formatting and fix to homebrew installation.
Fixing pip sudo when not using virtualenv.
Handle struct unpacking errors in ListenerThread without exiting.
Program addresses in reverse order so that lowest address, which
STM uses to validate application, is programmed last.