In the same spirit as #386
An extractor must implement get_id(), but is also responsible for calling it and passing the outcome to ExtractorResult.
This seems cumbersome. With the method being required, the extractor runner can query it automatically (and thereby removing the source of error where an implementation does not pass it on to ExtractorResult.