[BD-24][TNL-7824][BB-3373]: Implement ltiResourceLink deep linking content presentation
This PR implements the base LTI Deep Linking content presentation for `ltiResourceLink` types.
68d9c510cba3b78490c48ce8fc83c9a4b0ba5481: contains the full code changes.
5973a4350416ff61bef4e2321685cfe38986b10f: adds tests to check functionality.
1. Checkout this branch.
2. Set up a local LTI tool (recommended: https://github.com/dmitry-viskov/pylti1.3-django-example) and ngrok tunnel.
3. Do a deep link launch (from Studio link).
5. Select an option in the LTI tool's UI.
6. Go to http://localhost:18000/admin/lti_consumer/ltidlcontentitem/ and check that the option you selected is stored in the model.
7. Go to the LMS and load the LTI section.
8. Check that the local tool opens with the configuration you've selected in step 5.
1. Set up LTI + Deep linking.
2. Do a LTI launch using the Studio links and post it back to the LMS.
3. Open the LTI section in the LMS, the content from the IMS tool should load.
4. Take a screenshot and upload to their conformance tool.
[ ] @nedbat