Modify ScrollPane initialization to behave properly according to hierarchy.

ScrollPanes previously initialized components out of order (the ScrollPane
constructor demanded the use of the child component, necessitating its complete
initialization prior to ScrollPane completion). For this reason, elements
in children disabled, hoverable or invisible would have their settings
overriden by the ScrollPane's preferences. Fixed this by moving the bulk
of the ScollPane init into its own function and introducing a new constructor
which does not execute that code. Then, after configuration within
ComponentConfig, the init code is run with the given child. This APPEARS to
have no effect on existing behavior, but will need to be tested.