Clean up the struct syntax and force it to use newdecls.

This patch cleans up the `struct` syntax to make it look like methodmaps. All the old gross parsing is removed in favor of `parse_decl`. The results of that are then just copied into the struct definition.

This also removes commas from the struct syntax and forces struct names to start with an uppercase letter.

As far as we know structs are not used outside of Core since there is no API to use them. So this shouldn't break anything, and will make it much easier for a post-transitional compiler to handle structs as if they were classes.