Revert "clean up struct fields a bit"

This reverts commit 6413c61e9d20ef64a80bbb61508c2b699b9b1d98.

Turns out being comma-separated is important. Oops.
trait type parameters can't be empty
trait method type parameters can't be empty
impl type parameters can't be empty
impls always need braces
impl methods can't have empty type parameters
function type parameters can't be empty
const is gone
modes are gone, thankfully
@self is gone
mutability on ~ is gone