Refactor RequestTrait to prevent request stack mutation during kernel tests
**TL;DR**: `RequestTrait` in Canvas tests had issues, resulting in false `ApiAutoSaveControllerTest::testPost()` failures in !1193 that should not be happening due to mutation of request stack;
**Longer** version:
`RequesTrait` would clean the `request_stack` before making calls, but would not restore it and due to upstream shenanigans. This would leave orphaned request objects in `\Drupal::request()->getCurrentRequest();` .
An example of such failure is this https://git.drupalcode.org/project/canvas/-/jobs/10441223#L735 -\> an assertion failure when running `$page->validate()` in the PHPUnit kernel test of !1193 . The assertion failure there happens when the new validation constraint that **strictly** targets **only** requests handled by `ApiAutoSaveController::post()` is executed and passes the check for the controller, even though the $page-\>validate() does not use said controller. :melting_face:
issue