Added Module#module_exec and Module#class_exec

Module#module_exec
- does not add defined methods to other classes
- defines method in the receiver's scope
- evaluates a given block in the context of self
- raises an LocalJumpError when no block is given

Module#class_exec
- does not add defined methods to other classes
- defines method in the receiver's scope
- evaluates a given block in the context of self
- raises an LocalJumpError when no block is given
Fixnum#equal? should be alias to Fixnum#==

Also untaged passing specs:

Module#module_exec
- passes arguments to the block

Module#class_exec
- passes arguments to the block
Implemented Module#new

Fixes specs:

Module.new
- creates a new Module and passes it to the provided block
- evaluates a passed block in the context of the module
Remove extra method definition
Moved logic to #initialize
Merge branch 'master' into pr/666

Conflicts:
	spec/tags/core/module/new_tags.txt
Some style nits.
coerce more safely here, more passing specs
small fixes for module objects
rollback this change, it seems to have some unintended side effects
make this logic more robust, I think