title: Implicit conversion from nil to hash with refine bug
body: <p>I try to made a little hack with the refine feature (i use ruby 2.1.0)</p>
  
  <p>The purpose is to redirect the implicit conversion (to_hash) to the explicit conversion and avoid this error :</p>
  
  <pre><code>data = {test: :t}.merge!(nil) 
  # Return TypeError: no implicit conversion of nil into Hash
  </code></pre>
  
  <p>When i reopen the NilClass all is ok  :</p>
  
  <pre><code>class NilClass
   def to_hash
     to_h
   end
  end
  data = {test: :t}.merge!(nil) 
  # { :test =&gt; :t }
  </code></pre>
  
  <p>When i use refine feature, i get a no method error.</p>
  
  <pre><code>module MyRefine
    module NilClass
      refine ::NilClass do
        def to_hash
          selt.to_h
        end
      end
    end
  end
  
  module Aer
    using MyRefine::NilClass 
    data = {test: :t}.merge!(nil)
    puts data
  end
  # NoMethodError: super: no superclass method `to_hash' for nil:NilClass
  </code></pre>
  
  <p>How can i solve this problem?</p>