Add stable link fragments

Using named `a` elements in this way means that technically the links aren't
linking to the headings themselves.

Also we have IDs generated from the markdown which almost match the explicit
IDs chosen here.

We are doing this since using `h2` elements with an ID attribute would mean
that we lose the content navigation links.
Fix typo

compete -> complete
Remove unnecessary punctuation
Consistent wording