Rework Legend to use a custom dynamic column layout
This introduces LegendLayout and updates Controls.Legend to make use of that. LegendLayout is a custom layout that combines Grid and Flow. It will size things to fit within a certain size of column, using the same column width everywhere. It will dynamically determine a column amount based on the column size.
Additionally, Legend can now be scrolled when there is not enough space. A separator is used to indicate that things can be scrolled, since a scrollbar ends up being way too heavy.
Edited by Arjen Hiemstra