Add struct type to explicitly represent the empty tree

...and make it implement the FingerTree interface.

This removes the need to special-case checks for nil.