The formatter extraction would look at too much data for one type - possibly reading data outside the section. This PR limits the size of the `DataExtractor` to the one specified in the record size before - previously, the whole section was looked at. Similarly, `ForEachFormatterInModule` skipped zero-bytes but didn't stop when reaching the end of the extractor. I added a test for both cases.