Shrink empty lists

Empty lists have a different type than non-empty lists,
so separately implement shrink for that type. Fixes #21.