canvas-container: Distribute icons horizontally
Nautilus has always had a view that tries to emulate a grid, however the grid doesn't distribute the spacing of the icons when resizing and rather just snaps them on the left side. We can actually fix this by distributing evenly the spacing left. However there is a case where that looks bad, and that's when there is less than a single line of icons, since the icons will be spaced out along the whole view. We can fix that too by distributing the spacing in a function manner. This commit distributes the spacing of the icons in an evenly way when there is one or more lines full, and it uses a fast decreasing but smooth incremental function when there is less icons than a full single line. Eventually we will move to new views where the space is already distributed by the gtk containers, however we might want to keep the function spacing distribution too, so this code will be helpful at that point.