installBookLibraryView
Inflates the Book Library's view structure synchronously into containerView and returns the resulting binding, which must then be passed to BookLibraryController.showLibraryInView.
Inflation must happen synchronously, in the host's onCreate / onCreateView, for two reasons:
A child FragmentManager dispatches view creation to restored children synchronously inside the host's lifecycle, before any async work can run. If the library layout is only inflated later (e.g. inside a coroutine that waits for BookLibraryController to become available), restored child fragments end up with a null container and are never attached to the view hierarchy.
Bindings on those restored child fragments evaluate against the global resource providers (fi.richie.booklibraryui.binding.ColorProvider, fi.richie.booklibraryui.binding.DrawableProvider, fi.richie.booklibraryui.binding.FontProvider) before BookLibraryController has finished initializing. This function primes the providers with defaults so those bindings don't crash or render against unconfigured providers. BookLibraryController will later overlay any custom provider and call
notifyChange()to rebind with the customized values.