Parse header IDs according to HTML4 spec

Includes colons, underscores, dots and hyphens.

This fixes gettalong#72.