MDL-40052 events: Add a report viewed abstract event class

Add a base report_viewed event class
Write various tests for the abstract class report_veiwed
Create a child class for tool_participation of the report_viewed event class