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
0.4.0 was released, so remove rc from the changelog entry.
(#18165) Mark tests pending on broken puppet versions

The test that was created for #18165 assumed that it was working against
a version of puppet in which we could correctly load code. This is the
case for some versions of puppet that we try to support, but not
others. The versions that work are: 2.7 between 2.7.14 and 2.7.19, but
2.7.20 is broken. All of the 3.0 series is broken, but if the code has
an `initialize` method, which will appear in 3.1, then it should work.

This commit adds this check for marking the appropriate tests as
pending. In addition it adds tests to make sure we are setting up the
confdir and vardir as a proxy for settings getting initialized.
Merge pull request #31 from zaphod42/issue/master/18165-handle-inconsistent-support-for-loading-types-across-puppet-versions

(#18165) Mark tests pending on broken puppet versions