Improves chat header & entrybox resizing

I was hoping I could do this in a less bulky way, but still pretty good I think... I really like how this works.

This one does a few things:
1. Fixes a bug where channel description's `ScrollViewer` could be taller than the area it fits in, causing the last couple lines of the description to be unreadable
2. Ensures that when the entry box & chat header grow, at least a couple lines of chat are always visible, to prevent disorientation. (I tried `MinHeight` for this, but couldn't get the `GridSplitter`s to play nice with that)
3. Ensures that the header can never shrink the entry box, but the opposite can occur