Tweaking the code sample for 'A Case of Equality'

- removing the 'regular' classes since they result of their comparisons is too easy to get right
- adding a different case class definition that also uses the "problematic" base trait but does not affect case class comparison

Came across this while fixing the code sample to work with 2.11. I think the result is pretty puzzling, to be honest:
```
scala> println(cc1 == cc2)
In equals
true

scala> println(cc1.## == cc2.##)
true

scala> println(ccd1 == ccd2)
In equals
false

scala> println(ccd1.## == ccd2.##)
true
```