Refactor internals

* Extract layout proxy to its own class
* Reduce complexity of UIView viewDidLoad method