More instrinsicContentSize / contentSize priorities support

Also added equality check in invalidateIntrinsicContentSize: early
return if the intrinsicContentSize did not change.

Added Test for CPImageView intrinsicContentSize
NEW: CPWindow -layoutIfNeeded, -setNeedsLayout

setNeedsLayout adds CPWindow to the stack of layoutObjects in
_CPDisplayServer. _CPDisplayServer runLoop calls -layoutIfNeeded ->
-layout and runs the updateConstraintsIfNeeded pass and solves the
frames for the full hierarchy.
Currently setNeedsLayout is explicitly called when we tell the window
to engage auto layout (in -setAutolayoutEnabled:). In the auto layout
examples, this is done in awakeFromCib, i.e. after the view hierarchy
is setup. TODO: call setNeedsLayout in the FMW when all views are added.
NEW: _CPDisplayServer -lock and -unlock

TODO: use this in conjunction with bindings to avoid multiple layout
(CPView or CPWindow) being sent after a single user input
(CPEditorRegistration may help here).
CPImageView test improvements.

Tests layout locking.
CPImageView intrinsicSize change can now resize the window.