Cleaned up the implementation of "keep launcher open" option. Notably, fixed the possibility of update screen showing up multiple times.
Fixed a case where the launcher would close (despite "stay open" being checked) after launching the game if an update was applied.
Organizing imports
Lots of code cleanup! Fine-tuning member accessibility, adding private constructors for static/utility classes, getting rid of a couple unnecessary casts, etc.
Improved code organization a bit. Moved SharedUpdaterCode into a separate package. Also fixed a regression in SelfUpdater caused by overly-zealous "cleanup" :P