Fixed multilevel inheritance for controller elements and events

There is an issue with the controller elements and events inheritance that was suggested by  #430 improvement.
It's occurs then you have more that 2 classes in your inheritance tree. E.g.:
```coffeescript
class A extends Spine.Controller
  elements:
    ...

class B extends A
  elements:
    ...

class C extends B
  elements:
    ...

c = new C()
```

In this case "c" will only contain elements and events declared in C and B classes, not A, unfortunately.

Current pull request fixes this issue by collecting the elements and events recursively.
All this stuff is also covered with updated specs.

@cengebretson I suggest merging it as soon as possible cause the merged before feature is not working properly and may be confusing.