Fix unnecessary rules for FORTRAN user defined types

This standardizes variable definitions using the "type", "class" and "procedure" keywords to be treated along with other variable definitions. This eliminates unnecessary matching constraints placed on these keywords  only.  @albert-github can you take a look at this and see if there are any cases I didn't think of? Thanks.

Also, moved "type" definition to its own rule to eliminate a "dangerous trailing context" warning.