Names are Forever
In this PR, the process of locally dereferencing a document (i.e. document.locallyDereferenced()) will also use a new vendor extension to keep track of the Component Object name where any locally dereferenced objects used to be found.
For example, when resolving a JSONReference<Example>, the resulting Example will have a vendorExtension with key x-component-name and value equal to the name where the newly inlined Example used to be found in the Components.examples.
Note that there are three types for which this does not currently happen: