This change refactors some of the code to allow for some code deduplication in later diffs as well as just to make adding a new section type more self contained to the class itself. The idea for this was first mentioned by James in D 37915 and will be used in that change as recommended.
This change follows changes for dynamic sections but precedes support for dynamic relocations.
See my comment in D36560 regarding the argument names here.