add typedef rule.

adds typedef rule

enforces that types are defined in various places where they are able to be defined.

options usage explained in readme