Fortran: parse Fortran 2003 enums

Allow for not-yet-standard enum naming using `:: name` syntax.

Test case from Adam Hirst, thanks.
Fortran: don't generate tags for interface content
Fortran: generate fake tags for anonymous structures, interfaces and enums

This allows both to show those anonymous elements, as well as giving a
parent to their children, fixing display in the symbols tree.