Expanded the tests for re-defining definitions.
Pass VM instances to definition builders.

Instead of only taking a Definition::RubyObject instance the various
DefinitionBuilder classes now receive an entire VirtualMachine instance.
Fixed indents in the redefining spec.
Moved autoloading to the VirtualMachine class.

Instead of calling ConstantLoader in the Runner class it should be used in the
VirtualMachine class instead.
Added RubyObject#constant_proxy.
Added VirtualMachine#global_constant.

By adding this method the various definition builders don't have to directly
access the GlobalScope module. This makes it easier to remove/replace this
module.
Added the Registry class.

This class will act as a simple replacement for the GlobalScope module.
Added a global Registry instance.

This instance will be used for registering the built-in (and future
third-party) definitions.
Removed the GlobalState module.

This module has been replaced by RubyLint::Definition::Registry and a
corresponding singleton method RubyLint.registry.

This new registry is used to register definitions as well as applying them to
an existing RubyLint::Definition::RubyObject instance. This new setup allows
definitions to be created in a local state instead of a global one. The benefit
of this approach is that it becomes a lot easier to deal with analysis of
monkeypatches for loaded constants without having to resort to nasty hacks.

The downside of this approach is that if you have a long running process, such
as a web application, it would have to re-create the same definitions for every
request even if they're never modified. This is a change I'm willing to
introduce for the sake of code simplicity. If creating definitions is not fast
enough then I'll consider that a bug and try to fix it.
Updated built-in definitions for the new registry.

All the built-in definitions have been updated for the new Registry class based
setup. Some of these definitions do need some tweaking though.
Use `before :all` where possible.

This speeds up certain tests a bit.
Inspector should ignore included methods.

When inspecting a constant the inspector class now ignores the methods that
originate from included modules.
Generate code for inheriting included modules.

The definitions generator now generates templates that include the required
`inherits` calls so that included modules are taken into account properly.
Re-generated the Range definition.
Ignore constant aliases in the inspector.

This is to work around cases where for example Rubinius defines
`Range::Enumerator` which points to `Enumerable::Enumerator`. This in turn
would cause the latter to be included in the list of constants when inspecting
`Range`.
Removed the RSS constant definition.

This file is over 50MB and Github starts complaining about this.
Ignore the RSS constant.
Removed the REXML definitions.
Regenerated the stdlib constants list.
Run Travis on all branches.