Rewrite `ShouldAllBeEquivalentTo` in terms of `ShouldBeEquivalentTo`

Eqivalence assertion `ShouldAllBeEquivalentTo` to was not passing along type information from that is needed for Equivalency steps to respect the compile-time type.  This corrects that.

It took a little finagling, but I was able to do this without adding the `InternalsVisibleTo` attribute on Core.

My hope is that after better syntax is introduced configuring for the behavior of types (discussed in #134) `ShouldAllBeEquivalentTo` can be deprecated.  It was a fair bit of work to implement for what is (in my mind) marginal improvements in assertion syntax.