uiappearance tweaks

I exposed all the layout constants to uiappearance, and made all uiappearance setters call setNeedsLayout, so that you can change uiappearance on a running app.