Add support for trailing commas in more places

This lets the parser understand trailing commas in method calls, method definitions, enum variants, and type parameters.

Closes #14240.
Closes #15887.
This seems like an interesting pattern which is a little difficult to follow, could this just attempt to eat a comma after an expression and if it fails the loop bails out?