Module#method_added

Specs fixed:

Module#method_added
- returns nil in the default implementation
- is called when a new method is defined in self
BasicObject#singleton_method_added

Specs fixed:

BasicObject#singleton_method_added
- is called when a method is defined on self
- is called when a method is defined in the singleton class
- is called when define_method is used in the singleton class
Module#method_undefined

Specs fixed:

Module#method_undefined
- returns nil in the default implementation
- is called when a method is undefined from self
BasicObject#singleton_method_undefined

Specs fixed:

BasicObject#singleton_method_undefined
- is called when a method is removed on self
Tagged failing specs

This specs will be failing untill method visibility is implemented.
Do not forget to copy attached instance too
Define global const Binding

Fixes specs:

Proc#binding
- returns a Binding instance
Merge pull request #676 from krekoten/proc_binding

Define global const Binding
Class.new checks for suoerclass

Specs fixed:

Class.new
 - with a block given uses the given block as the class' body
 - with a block given creates a subclass of the given superclass
 - with a block given runs the inherited hook after yielding the block
 - raises a TypeError if passed a metaclass
Class#new
 - invokes #initialize on the new instance with the given args
 - passes the block to #initialize
Anonymous class gets it's name on assignment

Specs fixed:

Class.new
 - creates a class that can be given a name by assigning it to a constant
Anonymous nodule name

Specs fixed:

Module#name
 - is set when assigning to a constant
 - is not modified when assigning to a new constant after it has been accessed
Tagged failing spec
Merge pull request #677 from krekoten/class_new

Class#new superclass check and naming
Merge pull request #674 from krekoten/module_method_hooks

Module method_* hooks
Class#allocate

Specs fixed:

Class#allocate
- does not call initialize on the new instance
- raises TypeError for #superclass
superclass attr is mutable
random style nit
remove superclass from immutable fields
Create singleton class
Merge pull request #678 from krekoten/class_allocate

Class#allocate