Refactoring of Terasology.java in Facade/PC - Merge Candidate

**MERGE CANDIDATE**
* follows from the discussions had in PR #1102
* added a number of help launch argument: --help, -help, -h, /h, /? (will work even if capitalized)
* renamed launching argument variables for better readability
* wrapped some code in handleLaunchArguments(String[] args)
* wrapped some code in createSubsystemsList()
* wrapped some code in logException(Exception e)
* augmented class-level javadoc

Latest additions:
* GameEngine now extends AutoCloseable. dispose() method has been replaced by close().
* now using try-with-resources (TerasologyEngine.java now implements AutoCloseable as suggested by @msteiger)
* CheckStyle issue fix: isHeadless boolean now using default initialization
* CheckStyle issue fix: logException() no longer has an empty catch block and adds a suppressed exception instead, if necessary. 
There's no particular convention for an init() method, and it does seem unnecessary.