Fixes concurrency bugs, cleanup and reorders code

  * Reordered code in LaunchFrame.java to fix concurrency and
    GUI blocking bugs
  * Added gui/LaunchFrameHelpers.java
  * Moved FTBOSSent under dynamic storage
  * Reworked I18N:
     Added function to setup I18N without downloading
     Added function to only download new locales
     Added wait and sleep lock to ensure DL servers are found
  * DownloadUtils:
     Added setName() for thread
     Added log to to debug when thread is started
  * Added comment about concurrency bug in TexturePane.java
utils/AppUtils.java: Added waitForLock()

 * Added two static waitForLock functions which
   implements basic sleep and check locking.
 * Converted old code to use new functions
 * locale/I18N.java: fixed NPE
Fixed AuthlibDLWorker

 * Fixed AuthlibDLWorker's swingworker
 * LaunchFrame: GUI buttons ´made final and added getters
 * Launch button  will be enabled after AuthlibDLWorker
   is executed.
 * Launch button is possible to get enabled if user click other tab and
   returns back  to modpack tab. Minor problem. Did not fix that.
Refactored UpdateChecker to use SwingWorker

 * Will check for updates background in swingworker thread and opens
   LauncherUpdateDialog if needed
Added UnreadNewsWorker.java

 * Swingworker to check unread news and to set icon in news tabs
Prevent installing under c:\Program Files*\
Merge pull request #697 from jikuja/concurrency_fixes

Fixed concurrency bugs and cleaned LaunchFrame.java.