Move some of the headers from detail.

These are based on some of the suggestions by Stephen Kelly which seemed uncontroversial. I also noticed that `none_t` is probably in the wrong place.