Implement Hash#to_h
Implement Struct#to_h
Implement NilClass#to_h
Remove ENV.to_h(Rubinius::EnvironmentVariables#to_h) from 1.9

ENV.to_h is a new feature of Ruby2.0.
Implement OpenStruct#to_h

Ported from [MRI](https://github.com/ruby/ruby/blob/896af106070c9da72f45bf16b47c6641a6fdbc62/lib/ostruct.rb#L105-L116)
Merge pull request #2454 from kachick/2.0-to_h

{Hash,Struct,NilClass,ENV,OpenStruct}.#to_h for 2.0
Fix Exception#== for 2.0
Fix String#chars for 2.0

Avoid &block from following commits.

* ad47350b11776bf0a156554c3118d6f3c643c400
* 1211ffb10c2fda7d5f5bd01a09c77a69a464b288
Fix String#bytes for 2.0
Fix String#lines for 2.0
Merge pull request #2455 from kachick/2.0-exception-equal_value

Fix Exception#== for 2.0
Merge pull request #2456 from kachick/2.0-string-chars,bytes,lines

Fix String#{chars,bytes,lines} for 2.0
Mark more primitives as safe that don't raise exceptions or fail

These primitives also don't fail, mostly because they either simply
return a value or set something without any other complex code.
Add specs on StringIO#initialize with no arguments and Encoding.default_external.
StringIO: when initialized with no args rely on Encoding.default_external.
Merge pull request #2449 from razielgn/stringio-initialize-encoding

StringIO: promoting content encoding when initialized with an empty string.
Add specs on StringIO#initialize with empty string argument.
StringIO: when initialized with empty string use its encoding.
Merge pull request #2457 from razielgn/stringio-initialize-encoding-fix

StringIO: when initialized with empty string use its encoding.
Fix String#start_with? for 2.0