previously we'd ignore unknown keys. in preparation of moving to a library
let's instead collect them so a user of the class may also access them.
- new extraKeys helper and extraValue getters
- extras are always processed as String
- test case fixture extended + now has comment variants (previously comments couldn't be tested since they were skipped as either comments or invalid/unknown lines. with the extras API we can actually verify that they do not incorrectly end up getting parsed