Revamp specs

* Use the new `expect().to` syntax
* Avoid general fixtures by minimizing usage of `let` and `subject`
* Define as few support classes as possible, and use them for name
  lookup only - all behavior is introduced by stubbing
Minimal requires