Begin reworking core code in OOP

New level template addition and level opening/reading/displaying already
in place.
Converted _tempWrite() into general usage writer

Note: The code is fully broken now, as the functions that call this are
not yet converted into OOP.
File saving, file backup, and syntax checks restored,

Also new private method to display and log errors.
All public methods go below private methods
Fix a trailing new line workaround present

ever since I implemented the first syntax check.
All error dialogs are now use _displayError()
Parameter documentation, rename two props for clarity.
Minor in level checks
Lots of stuff in here:

* Fixed _displayErrors() raising an exception is an exception was not
actually raised
* Further variable renaming for consistency with two commits ago
* Add `PermissionError` exception handling to _writeFile()
* Minor tweaks to PermissionError dialog text
* Fixed an issue with new level template being two lines short in syntax
checks
+ Restore new level saving
* Refactored saveLevel() to enable new level saving
Remove old saveNewLevel() function,

block comment saveLevel() function (for now)
The Blocks.bat file may have been only used

in the 0.9.1 release, but that is the only release it will be used in.
It is not in my best interest to have such a launcher anymore, and as
such it is going away in the 1.0.0 release.
Add long versions of command-line arguments,

update change log
Four things:

* Line length fixes
* Remove `isWindows` alias to `init.isWindows` property
* Document method returns
* Move _relaunch() method into class, not used per TODO given in
docstring
Enlarge the character legend button a tad
Fix multiple regressions in file writer and syntax check:

* One too many trailing new lines written to file
* Removing last line in files that do not have trailing new lines (IXS
does have files like that)
* Incorrectly reporting syntax errors in files lacking trailing new
lines

Also:
* Fix some ReferenceErrors
* New parameter for _syntaxChecks(): levelLayout
* _syntaxChecks() returns layout suitable for writing if all checks
passed
Doc strings
Clarify what a "temporary" file is
* Fix command-line argument

* Fix error thrown when user does not select a destination file for a
new level
* Do not alert twice if PermissionError is hit when saving an existing
level
Fix ImportError on Py version check
Remove old (commented out) saveLevel() function