A List implementation

Implements List (#4) by using an extra layer of indirection.

Also implements a functor instance for List.
Do you want to put this into a new `swiftz/Box.swift`? I've got a feeling this is going to be useful when I implement `Tree`.