* don't use raw input to recreate subcategories for filter urls and
external links
* if a page does not expect categories it will now error out if it is
called with parameters
* fixed infite redirect loop that could occur if the pageName was an
invalid string
* added lost filter string for external page call to NPCs Page
* recreate date functions from javascript in new class DateTime
* move date and time functions from Util to new class
* fixes various cooldown messages for account recovery
* fix cache id collision when category == dbTypeId for a given dbType
* increment version number to invalidate existing caches
* maps endpoint doesn't need caching. It is entirely static content.
* split Screenshot upload & management into separate endpoints
* move shared functions to manager classes
* cleanup javascript
* move test for config screenshot min size to cfg class
* redo page render following the logic of:
Response ─┬─> TextResponse ─> TextResponseImpl
└─> TemplateResponse ─> TemplateResponseImpl
* split up giant files, one per response path
* caching becomes a trait, implemented where necessary
* TextResponses (Ajax) can now be cached
* make use of previously defined php classes for js objects
* Tabs, Listview, Tooltip, Announcement, Markup, Book, ...
* \Aowow\Template\PageTemplate is the new class to be cached
* do not discard error messages generated after vars have been sent to template
and store in session for display at a later time
* implement tracking consent management
* move logic out of template into their respective endpoints