Improved design configuration

:white_check_mark: ready for review

The design configuration undergoes major changes. It will be structured more like a database. Complex constructs like the inherited styles will be abandoned. The `styles` are renamed to `componentProperties` and stored differently. The groups are only used for structure and not necessarily needed by the engine. Whereever ordering is required an array is used if possible.

Here is an example of the new design data structure:

```coffee
design:
  name: 'complete'
  version: '1.0.0'
  author: 'Peter Pan'

assets:
  css: ["/stylesheets/test.css"]

componentProperties:
  'position':
    label: 'Position'
    type: 'select'
    options: [
      caption: 'Default'
    ,
      caption: 'Left'
      value: 'position-left'
    ,
      caption: 'Right'
      value: 'position-right'
    ]
  'extra-space':
    label: 'Extra Space'
    type: 'option'
    value: 'extra-space'

components: [
  name: 'title'
  label: 'Title'
  html: '<h1 doc-editable="title"></h1>'
  properties: ['position', 'extra-space']
,
  name: 'paragraph'
  label: 'Text'
  html: '<p doc-editable="title"></p>'
]

groups: [
  label: 'Headers'
  components: ['title']
,
  label: 'Text'
  components: ['paragraph']
]

defaultComponents:
  paragraph: 'paragraph'
```