The foldMap{Left,Right}1 formulation of Foldable1.
Foldable#foldMap{Left,Right}1Opt
Reimplement core Foldable1 instances in terms of foldMap{Left,Right}1.
Replace the structure tests on fold{Left,Right}1 with foldMap1 consistency checks.

It is now a free theorem that the call structure of a Foldable1's left
fold looks like f(f(f(z(a), a), a), a) for some arbitrary depth,
i.e. is called left-associative.  Likewise, the left fold must be
called as f(a, f(a, f(a, z(a)))) for some arbitrary depth.

We formerly tested this property, but with foldMapLeft1 and
foldMapRight1 as primitives with the above free theorems, this is no
longer necessary.  So we just reformulate the (still valuable)
consistency checks from Foldable.
Remove Arbitrary Free.Return; it is unused.
Override foldMap{Left,Right}1Opt in Foldable1.
Syntax for foldMap{Left,Right}1{,Opt}.
Merge pull request #512 from S11001001/topic/freer-foldable1

Replace Foldable1 primitives