MDL-46569 gradereport_history: Use table_sql for the report

This patch includes:-
- Convertion of the code to use new renderable/renderer apis
- Rewrote the code to remove all custom sorting, etc and use table sql instead
- Usernames are now clickable
- Grade items are now clickable
- Grade history is now displayed even if the grade item is deleted
- We are now using table sql for downloads so export in multiple formats is supported
- Feedback is now properly formatted
- Source fields are not capitilised anymore
- Paging is not shown on top of filters anymore
MDL-46574 gradereport_history: added report viewed event
MDL-46570 gradereport_history: Converting JS to namespace'd module
MDL-46570 gradereport_history: Safer use of language strings
MDL-46570 gradereport_history: Convert to use templates and selectors
MDL-46570 gradereport_history: Simplifying the select/deselect buttons logic
MDL-46570 gradereport_history: Adding JS documentation
MDL-46570 gradereport_history: Convert to moodle dialogue
MDL-46570 gradereport_history: Improving accessibility and selection mechanism
MDL-46570 gradereport_history: Reworked search and load more mechanism
MDL-46570 gradereport_history: Making the users list an ARIA widget
MDL-46570 gradereport_history: Styling for RTL languages
MDL-46570 gradereport_history: Clean up of styling and minor inconsistencies
MDL-46570 gradereport_history: Update the logic of button helper method