Merge pull request #2144 from ryoqun/print-bytecode-literals

Always show actual literals in bytecode printer
Update to newer version of RDoc gem

See http://www.ruby-lang.org/en/news/2013/02/06/rdoc-xss-cve-2013-0256/
Fix deadlock issue in signal handling of sleeping threads
Merge pull request #2145 from ryoqun/improve-bytecode-printer

Improve bytecode printer
Fix issue with invalid reading of byte size

The buffer isn't marked on stack and doesn't need to be since we copy
data. This does mean however, we shouldn't read from it after we have
possibly gc'ed. By storing the buffer size at the beginning we ensure we
don't need to read it later.
Spec ProcSubClass.new
Add failing tags
Don't duplicate Proc objects if not needed

Currently, when its receiver is a subclass of Proc, Proc::from_env() duplicates
passed objects, even if not needed. The case is that passing instances of the
same subclass of Proc:

    class MyProc < Proc
    end
    prc = Proc.new{}
    my_prc = MyProc.new(&prc)
    # => returns an instance of MyProc duplicated from prc
    MyProc.new(&my_prc)
    # => SHOULD return my_prc, but DOESN'T, rather DOES duplicate my_prc
    Proc.new(&prc)
    # => returns prc, by comparison

The problem is that there is unintended code path in which the needless
duplication can happen.

Thus, the duplication logic is moved from Proc::from_env() into the ruby code
of Proc.new and a new primitive called proc_duplicate_as_subclass.

Also revert no longer valid changes done in the following commit, which
originally tried to fix this:

1abfbdf84e3dac829b9495d548ce43d10cf17d6b
Make Proc::from_env reset klass if appropriate