Issue title: Deserialization performance, refactor COMPARE_TO_REMOTE_VERSION
 Issue body: Currently method ZCL_ABAPGIT_OBJECTS->COMPARE_REMOTE_TO_LOCAL is called for every object being deserialized, part of this is parsing the remote main XML file. Parsing XML is typically expensive, and this happens for every object.

Suggest ZIF_ABAPGIT_OBJECT->COMPARE_TO_REMOTE_VERSION to return an instance of a comparator interface or blank, if blank is returned ZCL_ABAPGIT_OBJECTS does not parse the xml, if an instance is returned the XML is parsed ans passed to some method of the new comparator interface.

I think currently this feature is implemented only for TABL objects.
Also note that `abapmerge` supports local classes.
 Comments: 
 Comment 0: Plus this is a good opportunity to move the call to POPUP_TO_CONFIRM in ZCL_ABAPGIT_OBJECT_TABL_DIALOG to a more central place, so the GUI can be decoupled
 Comment 1: todo:
move contents of ZCL_ABAPGIT_OBJECT_TABL_VALID to ZCL_ABAPGIT_OBJECT_TABL_COMPAR

will be done in follow up PR
 Comment 2: todo:
move contents of ZCL_ABAPGIT_OBJECT_TABL_VALID to ZCL_ABAPGIT_OBJECT_TABL_COMPAR

will be done in follow up PR
{'source': 'GithubIssues', 'repo_name_with_owner': 'abapGit/abapGit', 'issue_id': 412405208, 'repo_stars': 1099.0}