reorganize rules composed of choices of tokens to take up fewer lines; rework interface rules to be simpler and better factored and shorten names; format Statement rules to get some vertical alignment
remove InterfaceMethod and VoidInterfaceMethod rules:

  they are special cases of GenericInterfaceMethod, if the type parameters are optional
  then rename GenericInterfaceMethod to InterfaceMethod

Is this transformation valid, even though it does change what language the grammar generates?
 It now parses void methods with braces after the formal parameters.

The official grammar allows generic, void methods to have these braces, even though it's a
compile error.  So might as well be consistent in the grammar, if it's going to be checked
later anyway; plus, it's a big simplification and makes the grammar much clearer.