fix #852. Make Nokogiri's class cache thread local

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