Maint: Change formatting and handle windows path separator

The ruby convention is to not specify empty parentheses when calling a
function without arguments, so this commit removes them.

Also, this commit splits the environment modulepath using the platform
appropriate path separator, which is ';' on Windows.
(#18165) Initialize TestHelper as soon as possible

Previously, if third-party code used the puppetlabs_spec_helper, then
Puppet's TestHelper was not initialized until the first example was
evaluated. This had several consequences.

First, any code path that caused puppet to lookup a setting, even a
default value, would fail, because $confdir and $vardir hadn't been
initialized yet.

Second, Puppet::Settings.app_defaults_initialized?  would be false,
causing the third-party code to not be able to require code in
the same or different module, e.g. utility code, other types and
providers.

Third, attempting create a top-level describe block whose
described_class was a custom face, e.g.

    describe Puppet::Interface[:customface, :current] do
      it "should ..." do
        ..
      end
    end

would fail.

This commit ensures the puppetlabs_spec_helper initializes the
TestHelper as soon as possible. In versions of Puppet containing
3bd5e679, the TestHelper.initialize method will be called. However,
since the puppetlabs_spec_helper needs to be backwards-compatible with
older puppet versions, it will fall back and call the
TestHelper.before_each_test method, which at a minimum will initialize
settings and ensure it has sane defaults for testing, e.g. disabling SRV
lookups.

This change could not be implemented by hooking `before(:suite)` because
that is only called after the top-level example group is evaluted, which
defeats all of the use-cases above.
Merge pull request #29 from joshcooper/ticket/master/18165-initialize-test-helper

(#18165) Initialize TestHelper as soon as possible