Refactor columnWidth calculations

(Fixed PR)

A more thorough (than #1756) fix for column width calculations. Fixes layout issues that arise when using min/max widths, as well as ones that come from mixing percentages, auto (*s), and manual widths. Should work well in most - hopefully all - situations.

Link to a complex Plunker failing in old code: http://plnkr.co/edit/XZmdH8VXXOwwe4UDE5S6?p=preview

And working handily in new code: http://plnkr.co/edit/Z9lNZeObZ0jN2nUJrxOn?p=preview