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
Module#constants respects included modules

Specs fixed:

Module#include
- imports constants to modules and classes

Module#constants
- returns an array of Symbol names of all constants defined in
  the module and all included modules
- includes names of constants defined after a module is included
Implemented Module#include?

Specs fixed:

Module#include?
- returns true if the given module is included by self or one of it's ancestors
- returns false if given module is equal to self
- raises a TypeError when no module was given
Make RPython happy
Fixed failing test

In ruby only modules can be included
Split test case
Use reversed instead of countdown xrange
Do not build temporary lists
Merge branch 'master' into module_include

Conflicts:
	topaz/objects/moduleobject.py
Merge pull request #668 from krekoten/module_include

Module#include, Module#include? and Module#constants