(PUP-3520) Refactor Puppet OID registration to be explicit

Prior to this commit, the Puppet::SSL::Oids module would register with
OpenSSL the list of special Puppet OIDs every time it was
loaded (i.e. implicitly during require 'puppet/ssl/oids'). This commit
refactors the registration calls into a module method that is invoked
from the following application faces: agent, master, cert, certificate,
and ca.

The reason for this refactoring is to try and avoid all implicit calls
into OpenSSL so that it is easier to eliminate/avoid the OpenSSL usage
when the Puppet ruby code is loaded into Puppet Server.

The relevant acceptance test that should cover these changes is
puppet/acceptance/tests/ssl/certificate_extensions.rb
I think Ruby is smart enough, generally anyway, to not automatically re-source all of the content in a module or class for additional `require` calls made against something that has already been loaded.  So I wasn't sure if this is a case of some code that only was initialized once before that would be run through multiple times now.  I would mostly be concerned if the implementation behind the `ObjectID.register` call were really *dumb*, like adding duplicate OID entries to whatever data structure(s) it is using to manage these entries and causing the OID resolutions to be slower later on as a result.