Task
Build `web_scrape_table(html_str)` β a tiny "extract rows from an HTML table" helper for scripts that don't want a BeautifulSoup dependency:
- `html_str` contains one `<table>...</table>` with header row + body rows.
- Each row is `<tr><td>cell1</td><td>cell2</td>...</tr>`.
- First `<tr>` is the header row (column names).
- Return a list of dicts, one per body row, keyed by header.
- Empty/missing table β empty list.
- Use simple string slicing β no regex, no html parser. The harness only feeds well-formed input.