Second attempt at the tennis kata in Scala - this time using a trait and case classes.