Dont go through index and retrieve for rb_enc_get

There is no reason here to use the index first and do a lookup with that
after. We can get the encoding object here directly.
Add specs for Kernel#public_methods when given nil or false
Add specs for Kernel#protected_methods when given nil or false
Add specs for Kernel#private_methods when given nil or false
Fix Kernel#private_methods when given arguments
Add specs on MatchData#begin with no match for index.
Add specs on MatchData#end with no match for index.
Add specs on MatchData#offset with no match for index.
MatchData#begin and MatchData#end return nil with no match for index.
Avoid Marshal breakage by Yard. Fixes #2415.
Merge pull request #2447 from razielgn/match-data-offset

MatchData#begin and MatchData#end return nil with no match for index.
Add specs on Kernel#eval with #to_str coercion.
Kernel#eval: coerce parameter to string before doing anything else.

Previous behaviour was to delay it after storing/loading the object and
its context in a cache.
This could result in an implementation leak when passing an object
whose #hash method always returns nil (i.e. a NullObject).
Merge pull request #2448 from razielgn/eval-string-coerce

Kernel#eval: coerce parameter to string before doing anything else.
Merge pull request #2446 from kachick/fix-kernel-private_methods

Kernel#private_methods should reject methods of ancestors when given a falsy argument
Fix undefined C / C++ behavior for minimal signed values

The problem here is that the positive values for these are not
representable in a signed number. This would mean that the negative
value would be an undefined value.

By ensuring we use defined values here, we do this correctly.
Optimizations on clang 3.3 exposed this issue, since a spec would start
failing for this edge case.
Introduce specific release labels.
Every build has a release date.
Handle release label and date from git, release tar, or random tar.
Added 'monthly' binary build tasks.