IDEA(boot): more formally separate libs and their initializers

This is an idea for separating the initialization of the "libraries" from their code. Benefits:

1. A library can be included in a unit test without forcing the initialization to happen.
1. The initialization is testable by passing test doubles in for the hooks/events.
1. Adds a place to standardize init handlers
1. including any lib file doesn't run any procedural code (though it may set some local/global vars), to (mostly) be in compliance with PSR-1.

See #5777. cc @ewinslow