Fix a Module#module_function spec description
Update a Module#module_function spec for 2.1

https://github.com/ruby/ruby/blob/e315aa0c41b59249250fdfc6a0eef94635aedb40/NEWS#L89-L94
Add Module#{public,protected,private} specs

Many ported from Module#module_function.
Fix Module#{public,protected,private} without arguments in eval
Fix crash when no method missing can be found

Fixes #2546
Add spec for using a class allocated with Class.allocate
Removed digest ext from lib.
Merge pull request #2545 from kachick/scope_changer_without_arguments

Module#{public,private,protected,module_funtion} without arguments in eval
Merge pull request #2540 from razielgn/primitive_convert

EncodingConverter#primitive_convert clears the source buffer.
Merge pull request #2488 from kachick/2.0-builtin_privatized_methods-load,dump

{Rational,Complex}#marshal_dump and Time.#{_load,_dump} should be  private methods from 2.0
Adjust specs for Enumerable::Enumerator#initialize
Add specs on Enumerator#initialize for 2.0
Write spec fixtures for Enumerator::Lazy
Write a spec for Enumerator::Lazy
Write a spec for Enumerable#lazy
Implement Enumerable#lazy
Write specs for Enumerator::Lazy#initialize
Implement Enumerator::Lazy#initialize
Fix Enumerator#initialize for 2.0
Write specs for Enumerator::Lazy#{map,collect}