Tables now guess rowWeight and colWeight, although this can be overwritt...

...en. Close #106.

There was a slight annoyance in that Component tries to align itself in computeLayout,
and sets its size to the rowMinimum() if the rowWeight = 0 and minimum != 0. However
this interacted poorly with the table guessing 0 as its weight, which caused the table
to not throw insufficientSpaceError. I tried moving the error into the component but this
didn't work as it now caused textLabel to throw insufficientSpaceError rather than truncating text
as intended.

Fixed this by having the component.computeLayout only change availableWidth or availableHeight
if it has extra width or height to spare, which is logically a better behavior.