MDL-45843 mod_lti: Initial LTI 2 update

Update to LTI module to add LTI 2 support
MDL-45843 mod_lti: Fixed bug in services

Fixed bug which limited characters allowed in values of template
variables (e.g. vendor ID) in service endpoints.
Changed language file to refer to tool registrations rather than tool
proxies.
MDL-45843 mod_lti: Refactored service classes

Moved classes relating to services into areas where Moodle will autoload
them
MDL-45843 mod_lti: Ran code through code checker

Removed all errors reported by the Code checker module, excluding
third-party OAuth.php file.
MDL-45843 mod_lti: UI improvements

Mainly when adding an external tool to a course - fields which should
not be changed for a selected tool are either hidden or disabled.  Admin
settings page now shows the Tool Registration name against a tool rather
than the launch URL, and the registration URL replaces the GUID on the
tool registrations page.
MDL-45843 mod_lti: Updated tool proxy registration

Added check of tool proxy to ensure only offered capabilities and
services are included.  Also check tool proxy when processing a service
request.
MDL-45843 mod_lti: Code review changes

Some fixes based on code review by Mark Nielsen and addition of some
PHPDocs comments.
MDL-45843 mod_lti: Updates from code/PHPdocs checks

Removed use of eval and corrected invalid PHPdocs for new
functions/classes
MDL-45843 mod_lti: Further updates to fix code/PHPdoc checks
MDL-45843 mod_lti: Further updates to fix PHPdoc checks
MDL-45843 mod_lti: Bug fixes

Corrected namespace error and incorrect string terminator