Entities are re-usable collections of report columns and filters. When
creating system reports, we can re-use those elements from entities
without having to know specific details about their implementation.
They can be joined to reports, or other entities, using standard SQL
query syntax.
Define base classes, and create two example entities: course and user.
Co-Authored-By: David Matamoros <davidmc@moodle.com>
This change contains most of the output components required for
reports such as exporters, templates, AMD modules.
Also included are classes within the component table namespace which
are required for extending the dynamic table API.