converted dpw section to SPA using htmx; renamed moongate new-document route to match other route prefixes; removed unused route names; removed unused all_documents() subs from all route files; new test file for htmx requests
renamed access_denied page; moved configuration of link & label settings from record.tt to routes using vars.next_route; moved alert notifications (success & error) into own template; fixed js to auto-resize textarea on page load
moved Dancer2::Plugin::Auth::Tiny->extend() into its own package; dev login exempt from requiring username; added 'needs admin' to InfoLib edit route so it features in routes.t tests
major rewrite - combined separate docs-lib and moongate apps into single app using prefixes with multiple route files; merged DB functions into model which is now a D2 plugin, providing encapsulated model domains (infolib, moongate & dpw); uses route names to allow tt to call uri_for_route, but some caveats: * route names must be unique across all route files * uri_for_route cannot be used in any template loaded after a forward since the data required in request.uri_for_route($name) is deleted during the forwarding process leading to fatal error when tt calls the uri_for_route function; META function no longer works since tt WRAPPER function disabled to allow routes to define layout