Revert "Add 2.1 versions of some shared spec loads for proc and string."

The language_version mechanism was removed and replaced with simple requires
in ruby_version_is guards.

This reverts commit c9645c99e8043de7fbed3800aab059ac9c6da107.
Add specs for visibility of top level methods and script binding
Add spec for rb_str_encode with the same encoding
Add specs for read_nonblock with 0 bytes

This adds specs for reading data without any data written and with
something written. This is extract from issue #2327 in Rubinius.
Add spec for sprintf and encodings

Adds a spec for when the arguments have an encoding that is compatible
with the format, but where the argument's encoding has multibyte
character support and the format doesn't.

Extract from #2325
Add specs for rb_mutex_* C-API methods
Don't use a non-existing calendar time point (Time.local(2010,3,14,2,0,0)) in the EST5EDT test. Use a step of 1 second in all of the "around daylight savings" tests instead.
Run at least one command through the server

This prevents a race when we try to kill / stop it when it hasn't even
properly started yet.
Update IO#read spec to reflect MRI bug 8342
Add spec for IO#set_encoding(nil, nil) when mode != RDONLY
Add specs for the encoding of IO#gets and IO.readlines return values

In particular, these specs are concerned with the transcoding of IO
strings into the object's internal encoding,  as well as the special
case of the external encoding being ASCII-8BIT.
Add spec for the return value of IO#set_encoding
Add a concurrent Module#autoload spec.
require 'thread' is unneccessary since 2.0 already provides Mutex

Also fixes a typo in the comments.

Fixes #2080
Add spec for Enumerator::Generator to be Enumerable
Raises the original exception when #to_ary raises

When the argument is a splat, #to_ary is not called in MRI 1.9
Add spec for StringIO#getch

This method is added by io/console on require.
Add specs for IO.gets with a limit

This adds specs for a limit that is bigger than the number of available
bytes. In that case all bytes should be read.
Kernel#load should load file twice

In earlier tests we expect that Kernel#load does not load twice file
after $LOAD_PATH change. What is wrong because the Kernel#load should always
reload the file. Even if it is a completely different file.
Add spec for IO#internal_encoding with ASCII-8BIT external encoding