Declarative over imperative assertions

I found it difficult following along with what the assertions were about. This is an attempt to tackle that using:

- a verbose test api
- removing magic number from assertions

What do you think @lee-jon does this improve or hamper readability?
It's in the test description, but there are still some magic numbers going on. I could signify the number like:

````ruby
expect {
  (max_quality + 1).times { gilded_rose.update_quality }
}.to change{ item.quality }.
  to(max_quality)
```
But I also have a disjointed test description and assertion still. I'll update both.