Some mutators use mutate specific mutate commands "help", "version",
"status" and "credits" to ouput info about themselves.
Before this patch commands complained that there wasn't first three of
them. Now it doesn't complain.
Previously settings about side effects were scattered through different
relevant classes.
Now they will all be recorded in a single config object.
Additionally, log messages about both success and failure of introducing
these side effects.
Now `AcediaGameRules` are only added when Acedia actually needs their
events.
AcediaCore now also outputs console message about adding them and
registers a side effect.
This patch changes AcediaCore to only inject `BroadcastEventsObserver`
when its events are actually needed.
Other changes are making this change produce a log entry and adding a
relevant `SideEffect` that describes this change.
AcediaCore is moving towards separation of all of its functionality into
3 big groups: general, client-specific, server-specific. And files will
be rearranged into `BaseRealms`, `ClientRealm` and `ServerRealm`
accordingly.
Additional directory `CoreRealm` is meant to contain functionality and
base classes common for both `ClientRealm` and `ServerRealm` ones.
This is regarding an artifact left after text refactoring: when printing
JSON text values, they were being converted into `Text`, which after
refactoring always basically erased `MutableText` value, emptying it.