Uploader crashes with repeated use on OSX

This fixes a few issues that lead to crashes when using the bootloader
multiple times on OSX. Here are the commit comments:

commit 465fee98cad43c93456d4345379f0452f41da8d7
Date:   Mon Sep 8 19:19:54 2014 -0500

    GCS Uploader: prevent crashes on repeated use
    
    On OSX when using the bootloader multiple times when
    unplugging the device between (instead of clicking
    boot), the open command locks up the GCS. This makes
    it close the previous handle first.
    
    Ideally an unplug event would trigger the close, but
    the hooks are not easily available.

commit 34e798dd22e55b6394bf98e86de9a8eb20116157
Date:   Mon Sep 8 19:11:33 2014 -0500

    GCS Uploader: prevent condition that prevents rescue
    
    If you boot the flight controller and then unplug it quickly,
    the "BOOTING" state which disables all buttons remains.
    This state normally ends once the board boots and is detected,
    but isn't a necessary state.

commit 96cba20259c2e9b901390330ac26711544fa01e8
Date:   Mon Sep 8 19:08:05 2014 -0500

    GCS Uploader: close com port when booting
    
    Keeping this open makes the bootloader not work further
    times.


Hmm... maybe I was so impatient I never waited that long.

However, what is the benefit of disabling those buttons in that timeout period anyway? If someone clicks boot then immediately unplugs it they might want to go back into rescue without the wait. The disconnected state seems to be a pretty appropriate set of button highlights.