Simplify the type grammar
Simon P-J suggested the following simplifications in #3097: * Allow nested foralls in `ctype` just like in `ctypedoc`. * Use `gentype` rather than `type` in the LHS of type declarations. * Inline `type` in `ctype`. * Rename `gentype` to `type`. This patch does this. Also, the equivalent thing is done for documented types.