Bastardize Ruby's inheritance system.

Ruby's inheritance system is a bit of an odd one (that's an understatement).
Basically it works as following:

    BasicObject <- BasicObject singleton <- Class <- Module
        ^                                             |
        |                                             |
      Object    <-------------------------------------'
        ^
        |
    CustomClass

Here the arrows indicate the child to parent relationship. For example, Object
is the parent class of CustomClass.

Now here's the fun bit: the BasicObject singleton inherits from Class which in
turn inherits from Module. Module in turn inherits from Object. Sadly this form
of duplicate/recursive inheritance (whatever you'd call it) doesn't work in
ruby-lint's definition system as it would lead to stack errors.

To work around this ruby-lint uses a somewhat bastardized version of this
inheritance model, it looks like the following:

      Module
        ^
        |
      Class
        ^
        |
    BasicObject
        ^
        |
      Object
        ^
        |
    CustomClass

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
Custom inspect format for definitions.

Bacon apparently takes a massive shit when using `should` in combination with
large output of Object#inspect. Besides this issue the output *did* get fairly
big and non-readable.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>