JS api for creating GC roots to store temporary object references in (#40645)
Our current JS is not GC safe and as a result if a GC happens at the wrong time, objects being used by JS can get collected. This PR is a partial solution for the issue that introduces an API for allocating root buffers where you can store GC object references while JS code is manipulating them. Two convenience APIs are layered on top for creating single temporary roots. The PR updates some of the existing bindings APIs to make use of temporary roots when manipulating managed objects.