I originally had these as a long string of merges i.e. 
```ruby
@app.style
  .merge(default_element_styles)
  .merge(@app.element_styles[self.class]
  .merge . . .
```

But it choked on the fact that `@app.element_styles[self.class]` is nil until the user defines it via `style(Shoes::Element, style: new)`

Is there a cleaner approach just waiting to be used here? :)

I was also going to use `merge_exisiting`, but then thought that if we want to guard against unknown styles (`:jellybean`) it might be nicer for the user if we raised an error `Unknown style :jellybean`.

What do you think of that?