Normalize chain elements
Normalize chain elements

Instead of passing around a list of subexpressions ([`a`, `a.b`, `a.b.c`]),
we now use a list of chain element ([`a`, `.b`, `.c`]). This should make it
easier to extract comments between chain elements.

graydon/rust,aidancully/rust,graydon/rust,aidancully/rust,aidancully/rust,graydon/rust,SingingTree/rustfmt,graydon/rust,rust-lang/rustfmt,aidancully/rust,SingingTree/rustfmt,rust-lang/rustfmt,aidancully/rust,aidancully/rust,graydon/rust,graydon/rust