Allow multiple levels of optional definitions

As far as @abalmos and I can tell, this change fixes the bug. However we are by no means coffeescript programmers, so it might not be the best way to fix it...

Below is a minimal example which would not work before this commit.
`/files` would have a GET method, but it should not.

```yaml
#%RAML 0.8
title: Title
resourceTypes:
  - common:
      get?:
  - base:
      type: common
      get?:
/files:
    type: base
```

After this commit, `/files` has no GET method.