tag some specs
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
some passing specs
a passing spec
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
I can't figure out why this fails, skip for now
Fix return in define_method
more passing module specs
Module#include implementation

Specs fixed:

Module#include
- calls #append_features(self) in reversed order on each module
- raises a TypeError when the argument is not a Module
- recursively includes new mixins
- detects cyclic includes
- accepts no-arguments
- returns the class it's included into
Module#append_features detects cyclic include

Specs fixed:

Module#append_features
- raises an ArgumentError on a cyclic include
doh, retag this