This change was mostly done in an attempt to create Acedia's server API
faster and, consecuently, load required `Feature`s faster as well. As a
byproduct - Acedia launcer's core settings (inside
`[AcediaLauncher.Packages]` serction) were moved to a separate `Object`,
accessible from all Acedia classes. This is also the cleaner way to do
it.
This variable didn't serve any really useful purpose, but has led to
game crashes. While adding proper cleanup could also solve these
crashes, there is no real point to keeping it at all.
NOTE: It's only purpose was to make sure only one instance of
corresponding mutator exists, but duplicates shouldn't happen in the
first place.
We want all actors and objects defined in Acedia to share
a global namespace that provides an access to important variables
(such as `Acedia` reference) and functions.
We add a `Global` singleton and `AcediaActor` / `AcediaObject`
base classes with a quick accessor to it's instance (`_` / `_()`).
Add class that can automatically perform defined tests on user request.
Developers that wish to implemet unit tests for some functionality
must extend that class (`TestCase`) and add it to the manifest,
so that Acedia can read, register and later use it to perform tests.