[WIP] Configuration Trees

(See https://trello.com/c/wpI2gX5I/13-configuration-trees.)
[You don't have to reply to these. See my main comment.]
The assumption that the list is non-empty makes me nervous. This'll need to be documented in the Javadoc if it's not changed. (Yes, it's private, which is why documenting the behavior might be sufficient.)