Problem/Motivation
The History service uses procedural functions with logic that is difficult for contrib to modify, and only supports the node entity type.
Prior to post #221 these problems were being fixed in this issue. As this scope was too large to effectively manage in a single issue, it is now split.
Remaining tasks
#3267010: Introduce a generic HistoryRepository service without changing storage or caching
#3267011: [PP1] Use the HistoryRepository in the comment & node modules
#3267021: [PP1] Deprecate history procedural functions
#3267014: Block & migrate tests fail to declare dependency on history
#3267015: Make History storage support any entity type
#3274480: Make history repository optionally support "edit" besides "view"
#3267016: Support history in views for entity types other than node
#3267019: Make history's frontend code support non-node entity types
#3267020: Use caching for history