Improved code organization a bit. Moved SharedUpdaterCode into a separate package. Also fixed a regression in SelfUpdater caused by overly-zealous "cleanup" :P