Cleaned up get_page_class to figure out what it's to do based on whether the module or template exist, rather than by catching exceptions. This simplifies the code and testing, and allows the code to let exceptions in modules/templates propagate.
Added tests for get_page_class, both happy and unhappy path
Fix the Page dataclass to properly create the init method