Startup Manager fixes.

Up until now, the Startup Manager had been a singleton that relied on Java's Enum semantics to enforce its "singleton-ness". This was a bad idea, as it required some hacks to deal with the combination of Swing GUI elements and the way Enums are instantiated. This pull request should go a long way towards fixing the situation.

Note that you will need to run an `ant clean` due to the `Platform` enum moving. Sorry!