Refactor ``MetricEvaluator`` and ``Metric`` I/O based on ``data_category``:

- Event tables (``DL1_EVENT``, ``DL0_EVENT``): read directly via
  ``ctapipe.io.read_table`` with ``input_source`` as ``<table_path>/<column>``;
  timestamps are joined from the subarray trigger table when not present in the
  data table.
- Monitoring tables (``DL1_MONITORING``): retrieved via
  ``ctapipe.io.MonitoringSource.get_table()``.
- New optional ``input_source_subtype`` trait added to ``Metric`` for data
  sources that require a subtype parameter (e.g. ``PIXEL_STATISTICS``
  monitoring data).

.. note::

   ``data_category`` is now a trait of ``MetricEvaluator``, not of individual
   ``Metric`` instances. All metrics in a single run must therefore share the
   same data category, and only one input file can be processed per
   ``MetricEvaluator`` invocation.
