(#13396) Unify ifconfig usage and lookup ifconfig path to fix support for recent net-tools

Without this patch applied linux systems with recent net-tools loose
support for ipaddress,macaddress and other network related facts.
This is due to a path change from /sbin/ifconfig to /bin/ifconfig.
This patch fixes this issue by unifying the lookup and execution of
ifconfig and testing where the ifconfig binary is installed.
Merge pull request #386 from scepticulous/fix/master/fix_net-tools_support

fix recent net-tools support and unify ifconfig usage ( fixes bug #13396 )
Remove .rspec from source

The only thing this file did was enable color.  This is a personal
preference, as is --fail-fast while using autotest.  It's a problem that
personal preferences can't be expressed without making the source dirty.
This patch fixes the problem my removing and ignoring the rspec file.

This patch also fixes a file not found exception in the watchr script
when the .rspec file does not exist.
(maint) Add pry development gem dependency

This is just a development debugging tool.
Add rake collect:ec2_metadata task

Facter does not provide the means to easily collect example fixture data
from a running EC2 instance.  This is a problem because it is difficult
to develop robust facts using the EC2 metadata server without example
fixtures to write specification tests against.

This also makes TDD/BDD difficult when running on a Mac laptop outside
of the EC2 environment.

This patch is enables TDD/BDD of EC2 facts by providing example
responses from the metadata server API as YAML fixture data.
(#7559) Add Facter::Util::EC2.with_metadata_server method

Without this patch Facter has no clear way to define the EC2 related
facts in a robust and reliable manner.  This is a problem because Facter
needs to run as robustly on nodes that are inside of EC2 as it does on
nodes that are outside of EC2.

The root cause of the problem is that we have no way to introspect the
system to determine if we're on EC2 or not without making a network call
to the metadata server. [1]  This means that either non-EC2 nodes will
suffer a timeout trying to connect to a non-existent metadata server or
EC2 nodes will suffer from facts not being defined.

This patch addresses the problem by adding a new utility method with the
following behavior.  A block is accepted and will be executed only under
the following conditions.  The block should execute whatever code is
necessary to define the EC2 facts themselves.

1: Do not execute if the virtual fact is not "xenu"
2: Do not execute the metadata server does not respond in 100ms after
three consecutive attempts.

[1] https://forums.aws.amazon.com/thread.jspa?threadID=62617
(#7559) Refactor the way ec2 facts are defined

Without this patch the EC2 facts use a number of methods to determine if
they're running on openstack, Amazon EC2, eucalyptus, and others.  These
methods have proved to be lacking robustness.

This is a problem because Facter fails to define facts even when a
Metadata server is available.

This patch addresses the problem by changing the behavior of deciding
when to define the dynamic EC2 facts.  The
Facter::Util::EC2.with_metadata_server method is used with a 50ms
timeout over three consecutive retries.

With this patch applied the EC2 metadata and userdata facts should be
defined whenever the node is has a virual fact value of "xenu" and there
is a metadata data server available at http://169.254.169.254

This patch also removes the `userdata` and `metadata` methods that were
previous defined as instance methods on the base Object class.