Emit a warning if untracked patches are found in the patch directories.
This fixes the problem where the doc node can actually also be a XML_DOCUMENT_FRAG_NODE. In that case it's structured like a node which means it stores a VALUE inside _private. This checks the type of the code and uses the correct marking for the specific cases. Fixes #939
Depending on the ScriptingContainer each thread may or may not have its own runtime. Which means the last runtime that initializes Nokogiri will insert its RubyClass instances in our class cache. This will cause all the other threads to see weird behavior as Nokogiri fails to lookup ruby classes properly. This fix makes the class cache an internal variable per in the Nokogiri module. Thus, we'll have one cache per runtime regardless of whether it's shared between threads or not