Merge legends

Extending only HorizontalLegend to cover Legend functionality.

Orignal PR #1415.
Never mind, seems like because of the each semantics, the above can't work unless you use a different API point.