Moving header tag generation to a single place.
Add placeholder id for now.
Implement heading ids.

- Tags removed.
- Non-alphanumeric characters converted to hyphens.
- Duplicate hyphens squashed.
- Lower case.
Merge branch 'header-ids'