Minor optimization in fragment allocator.

Reuse Space object.
Make sure available space is updated so early bail in HasSpace happens more often.
ResourceEditWindow should open files on drop.
Added "toggle-mode" attribute for TBButton.
Changed listener API for OnWidgetAdded/OnWidgetRemoved.

NOTE: Local listeners are now called on the parent widget instead of the child!
It makes more sense to use a listener to listen for additions/removes in a certain
widget, than listening to when a specific widget is added/removed anywhere.
Removed auto-collapsing and added widget visibility modes.

Layout does no longer auto-collapse widgets when they prefer 0x0 size. Instead
there is visibility "gone".

There is also "invisible" that behaves like opacity 0, and "visible".

This makes the layout cleaner, and makes it easier to change visibility.
Fix for broken rendering after minimizing window in Demo on windows.