Implement a new ListModule where head and tail reutrn Options.

Chapter 3 Exercise 2: This eliminates the slight smell of throwing
exceptions for the empty list case. However, using Options make some
other code more awkward, as a unit test will show.