Refactor EAD parser to output records as they are parsed

Previously, the EAD parser would assemble all the components in an
ArrayList of Strings, and return them all at once. Changed to return
an iterator that returns the next component.

@michael-lts Can you take a look at this?