fix(dashboard): set page titles centrally so extensions can't clash (#411)
Graph Monitor's tab title was wrong because create_calibration_graph_doc is a panel_factory-style entry with no doc access, so it could only set the page_title Jinja variable, not Bokeh's Document.title which actually drives the browser tab. Panel falls back to a generic default in that case.
Instead of requiring every extension to wire up doc.title itself (which plotmon/insmon do, grace doesn't), juice now sets it centrally from DashboardEntry.name: doc_modifier entries get doc.title set as a default before the extension runs, and panel_factory entries get their title threaded through pn.serve(title=...).
Both kinds of entries are also now given a fresh copy of the shared template_variables dict per call instead of the process-wide object by reference, closing the mutation-leak class of bug fixed defensively in quantify-os/quantify!240 (merged) (and still present in dashboard_handlers.MainHandler).
Closes #411 (closed)