Phantom optimisations, episode II

Defer the building of phantoms until the first mouseenter event.

This should completely eliminate the load time problems with
complex pages on mobile.

Change-Id: I728a0f966de42e1b0cb0796effb95acff2196e50
Make $window a property of ce.Surface

Used in multiple places so better just to cache on construction.

Change-Id: Ic98eb654956675707dc05d71b95c776d93d44257
Merge "Phantom optimisations, episode II"
Merge "Make $window a property of ce.Surface"