Add specs for Array#keep_if, Array#select! on frozen objects
Fix Array#keep_if on frozen objects
Fix Array#select! on frozen objects
Add spec for Array#delete_if on frozen objects
Fix Array#delete_if on frozen objects
Add spec for Array#reject! on frozen objects
Fix Array#reject! on frozen objects
Use an explicit name that doesn't collide for GC memory allocation

valloc is actually a function that exists, so to prevent any confusion
or wrong linking, make the name unique and explicit. This fixes a memory
leak warning found with Valgrind.
Use explicit string lenghts if they are known
Merge pull request #2300 from kachick/fix-array-filters-always_return_enum

Side effect filters should return Enumerator on frozen array
Remove unused method
Add a spec for String#split retaining the original string's encoding
Set correct encoding when splitting a String using the awk method

When String#split is called with an empty pattern, or a single space
(' '), the string_awk_split method is used. In this particular case,
the encoding of the resulting array of strings was not being set to the
encoding of the original string.

Fixes #2304
Remove dead code in Splitter

The contents of `pattern` can never be nil at the point where the
conditional check occurs, as it would have previously been set to ' '
if it was passed in as nil.