(PE-6014) Don't initialize SSL when not CA

Despite the number of commits and test changes, this didn't end up being as drastic of a production code change as we were expecting. Since we decided to hold off on the fail-fast behavior, some of the changes made in early commits to prepare for that are not necessary and are undone in later commits. Therefore it might be easier to look at the overall changes rather than per-commit.

----

The heart of this PR is the addition of `initialize-master-ssl!` to the CA service protocol. The master service has been refactored to call this protocol method instead of the function in the CA namespace. The function `initialize-master-ssl!` has not changed behavior, although the arguments were collapsed so it accepts the entire `ca-settings` map instead of 10 different values from that map.

By initializing the master SSL files via the protocol method, we can now turn on/off this initialization by choosing the appropriate CA service in the bootstrap config.

I've created https://tickets.puppetlabs.com/browse/SERVER-30 to capture the fail-fast behavior that we decided not to do here.
I had version-check here because this way we test that all of the services are compatible when run in the same container together... we're going to have to find a different way to deal with the dujour thing or we won't be able to test the version check service at all, so i'd rather keep it in this test personally.