return vendor field and retab

This commit returns the vendor field to the facter
spec, which was lost in the transition to an erb
template. It also tabs in this section for clarity.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #330 from MosesMendoza/maint/1.6.x/add_vendor_and_retab

return vendor field and retab
(#16397) Update selinux_mount_point for 1.8.5 compatibility

The lines method does not exist for the String class in ruby 1.8.5, which
causes the selinux_mount_point function to print Could not retrieve selinux:
undefined method lines' for #String:0x2abc1ffefe88to STDERR. This commit
monkey patches facter with `lines` so that it can safely use the `lines`
method on 1.8.5. It monkey_patches both String and IO.

It also includes spec tests for the String and IO classes to verify they
respond to lines in the expected manner.
Merge branch 'ticket/1.6.x/16397_fix_selinux_mount_point_for_185' into 1.6.x

* ticket/1.6.x/16397_fix_selinux_mount_point_for_185:
  (#16397) Update selinux_mount_point for 1.8.5 compatibility
Maint: fix mismatched stub

Previously, the infiniband spec test would fail on systems where the
file `/sys/class/net/ib0/address` did not exist, but `/sbin/ip` did, as
it would attempt to execute `/sbin/ip link show ib0`. This change was
introduced in commit 1d82907b.

The real issue was that the code was using `File::exist?`, but the spec
test was stubbing `File.exists?`. And this wasn't noticed in CI, because
jenkins was executing `rake spec`, which doesn't do anything and just
returns 0.

This commit changes the code to use `File.exists?` as that is more
standard usage, and updates the spec test to add expectations on the
correct methods.
Merge remote-tracking branch 'upstream/1.6.x' into 2.x

* upstream/1.6.x:
  Maint: fix mismatched stub
  (#16397) Update selinux_mount_point for 1.8.5 compatibility
  return vendor field and retab
Merge remote-tracking branch 'upstream/2.x'

* upstream/2.x:
  Maint: fix mismatched stub
  (#16397) Update selinux_mount_point for 1.8.5 compatibility
  return vendor field and retab
(Maint) Remove aliases for spec from Rakefile

Previously `rake test`, `rake specs`, `rake tests` were all equivalent.
However, there was also `rake spec` which existed, but was not listed by
`rake -T`, but also did not fail. The `rake spec` task is the most
common one for running spec tests. As things were setup, the `rake spec`
test would run, exit with 0, but not actually execute any tests.

This commit removes the various aliases and leavs us with just `rake
spec`.
Merge pull request #346 from zaphod42/maint/1.6.x/remove-aliases-from-rakefile

(Maint) Remove aliases for spec from Rakefile
Update lib/facter/version.rb for 1.6.14-rc1
(maint) Add .yardopts file

This patch makes it easy to generate documentation, including private methods.
The assumption is that code will be marked up in markdown style yard comments.
YARD tags are documented at: [YARD Tags
Overview](http://rubydoc.info/docs/yard/file/docs/Tags.md)

The YARD documentation is currently intended for Puppet developers and
community contributors.  While useful for end users, YARD documentation is not
intended for new users or end users who are not developing on Puppet.
Merge branch 'maint/1.6.x/yard' into 1.6.x

* maint/1.6.x/yard:
  (maint) Add .yardopts file
Merge branch '1.6.x' into 2.x

* 1.6.x:
  (maint) Add .yardopts file
  Update lib/facter/version.rb for 1.6.14-rc1
  (Maint) Remove aliases for spec from Rakefile

Conflicts:
	lib/facter/version.rb
Merge branch '2.x'

* 2.x:
  (maint) Add .yardopts file
  Update lib/facter/version.rb for 1.6.14-rc1
  (Maint) Remove aliases for spec from Rakefile
(#16511) Do not call arp -an on Solaris nodes

Without this patch applied the EC2 facts cause Facter to execute the
`arp -an` system command on Solaris systems.  This is an invalid command
on Solaris 8, but not 9 or 10.  This is a problem because the following
output is displayed to the user every run:

    arp: -an: unknown host

The other problem is that facts which depend on this behavior working
are themselves broken and do not resolve on Solaris.

This patch _papers over the problem_, but does not fix the core issues
present in the EC2 facts.  The core problem is that way too much EC2
specific work is being done in the main scope, causing this behavior and
code paths to be exercised on systems like Solaris 8 that will never run
in EC2.

The example `arp -a` command example is copied from
http://docstore.mik.ua/orelly/networking_2ndEd/tcp/ch13_04.htm
Merge branch 'fix/1.6.x/16511_fix_arp_an_for_solaris8_small' into 1.6.x

* fix/1.6.x/16511_fix_arp_an_for_solaris8_small:
  (#16511) Do not call arp -an on Solaris nodes
Merge branch '1.6.x' into 2.x

* 1.6.x:
  (#16511) Do not call arp -an on Solaris nodes
Merge branch '2.x'

* 2.x:
  (#16511) Do not call arp -an on Solaris nodes
(maint) Avoid "Use RbConfig instead of obsolete and deprecated Config" message

Without this patch the spec tests for Facter issue the following
warning:

    Use RbConfig instead of obsolete and deprecated Config.

This patch fixes the problem by branching on the presence or absence of
the RbConfig constant.
Merge branch '2.x'

* 2.x:
  (maint) Avoid "Use RbConfig instead of obsolete and deprecated Config" message