Fortran: don't generate tags for interface content
Fortran: parse Fortran 2003 enums

Allow for not-yet-standard enum naming using `:: name` syntax, see
http://docs.cray.com/books/S-3692-51/html-S-3692-51/z970507905n9123.html

Test cases contributed by Adam Hirst, thanks.
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.
Fortran: add missing `block` and `endblock` keywords
Fortran: fix handling of preprocessor directives on the first line

Fix a race initialization leading to incorrect handling of preprocessor
directives on the first input line.

Test case contributed by Adam Hirst, thanks.
Fortran: allow keywords as names

Allow keywords for names of modules, programs, types, interfaces,
structures and enums.

Test case contributed by Adam Hirst, thanks.
Fortran: add support for "len" and "kind" qualifiers

Test cases contributed by Adam Hirst, thanks.
Fortran: add a few more test cases