feat(pipeline): add attempted-file timing summary (#39)

<!-- greptile_comment -->

<h3>Greptile Summary</h3>

This PR adds a lightweight timing and file-count summary to the pipeline's final output. Each processor now tracks an `'attempted'` count (files queued for processing) and the orchestrator (`pipeline.py`) records wall-clock elapsed time per phase, then prints a formatted summary with per-table and aggregate throughput metrics (`HH:MM:SS`, files attempted, and average seconds/file).

The changes are consistent across all five processor modules and the implementation is clean. One minor documentation point: the `process_pending_files` docstring in `flow_db.py` was not updated to include the new `'attempted'` return key.

<h3>Confidence Score: 5/5</h3>

- This PR is safe to merge — changes are additive, non-breaking, and consistent across all processor modules.
- All changes are purely additive (new dict keys, timing captures, and summary formatting). No existing logic is altered, no database schema is touched, and the new code paths have correct zero-guards. Only one minor documentation issue identified.
- No files require special attention

<!-- greptile_failed_comments -->
<details open><summary><h3>Comments Outside Diff (1)</h3></summary>

1. `netflow-db/flow_db.py`, line 224-225 ([link](https://github.com/flamboh/netflow-analysis/blob/20845d54abc9d1c215a26600f5ff6eaa9244761a/netflow-db/flow_db.py#L224-L225)) 

   The docstring should list all keys returned in the stats dict, including the new `'attempted'` key that is set at line 245.

</details>

<!-- /greptile_failed_comments -->

<sub>Last reviewed commit: 20845d5</sub>

<!-- /greptile_comment -->
b24fa55684oliver committed on 3/9/2026, 9:54:34 AM· committed by GitHubparents2354c4fc7b3cd4
8 files changedLine totals unavailable