Fix #253: Hub: Fix scroll position restoration

When using a horizontal Hub, it is best practice to specify all section
widths in CSS for performance reasons.

However, developers may choose to have a section whose width depends on
its content. In this case, the section may change width during
WinJS.UI.processAll (e.g. if the section contains a Repeater). In this
scenario, to reliably restore a scroll position after a navigation, the
developer should wait for the Hub to fire loadingState=complete.

The bug was setting scrollPosition in loadingState=complete didn't work
because the Hub had the sizes of the sections before they were processed
rather than afterwards (so it would clamp the desired scroll position
incorrectly).

The fix is for the Hub to invalidate its measurements before firing
loadingState=complete if a section changed size during processing.
Merge branch 'master' into AmazingJaze/DynamicAppBarPlacementChange
making test clearly synchronous.