(maint) Don't cache suitability information

When testing a resolution, the confines may be tested to confirm
suitability on a given platform and so may be changed without destroying
and recreating the resolution. Because of this we need to recalculate
suitability every time #suitable? method is invoked. In normal operation
fact suitability is only determined once so this should have no
performance impact.
(FACT-185) Add helper for flattening structured facts
(FACT-185) Implement more modular ec2 query API

The existing EC2 API implemented all methods on a module object, which
made for a rather clumsy API that required intrusive stubbing to test.
This commit implements a new object based API that should be cleaner to
use.
(FACT-185) Update ec2 facts to use new ec2 query classes
(FACT-185) Deprecate the old Facter::Util::EC2 API

With commit 5ca456f5 we have a new method of querying the EC2 API; the
old methods can be deprecated.
Merge pull request #661 from adrienthebo/feature/facter-2/fact-185-structured-ec2-metadata

Feature/facter 2/fact 185 structured ec2 metadata
(maint) Don't evaluate ec2_metadata fact when loading for tests
(maint) Ensure specs don't generate flattened ec2 facts
Merge branch 'stable' into facter-2
(FACT-249) Support netmask fact on AIX
(FACT-247) Correct assumed regex for AIX netmask fact

On AIX, the printed output of ifconfig is similar to the best family with
respect to netmask (that is, prepends the value with 0x):

[0] [AIX] root@pe-aix-61-agent:~ # uname -a
AIX pe-aix-61-agent 1 6 00F7FD3A4C00 powerpc unknown AIX
[0] [AIX] root@pe-aix-61-agent:~ # /etc/ifconfig en0
en0: flags=1e080863,480<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD(ACTIVE),CHAIN>
        inet <redacted> netmask 0xffffff00 broadcast <redacted>
        tcp_sendspace 262144 tcp_recvspace 262144 rfc1323 1

Note netmask 0xffffff00, which is 255.255.255.0.

This means the regex block in facter/util/netmask.rb that AIX belongs to is the
one with the various bsd variants.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
(FACT-462) Raring went EOL in Jan 2014, so we should no longer build packages for it.
Merge pull request #665 from haus/ticket/stable/fact_462

(FACT-462) Raring went EOL in Jan 2014, so we should no longer build pac...
(FACT-451) Add Cumulus Linux distro to Debian OS family

Cumulus Linux should report Debian for the osfamily fact.
Merge branch 'pr/658'

* pr/658:
  (FACT-451) Add Cumulus Linux distro to Debian OS family

This closes GH-658.
(FACT-451) Add Cumulus Linux distro to Debian OS family

Cumulus Linux should report Debian for the osfamily fact.

Conflicts:
	lib/facter/osfamily.rb
	spec/unit/osfamily_spec.rb
Merge branch 'pr/658' into stable

* pr/658:
  (FACT-451) Add Cumulus Linux distro to Debian OS family

This closes GH-658.
Merge branch 'stable' into facter-2

* stable:
  (FACT-451) Add Cumulus Linux distro to Debian OS family
  (FACT-462) Raring went EOL in Jan 2014, so we should no longer build packages for it.
(FACT-189) Add LXC detection to virtual and is_virtual fact

Without this patch the virtual and is_virtual facts are returning
"physical" and "false" respectively.  This is a problem because Linux
Containers are a virtual environment and it is useful to configure
things differently in lxc when compared to other virtual environments.

This patch addresses the problem by detecting if the process is running
inside of a linux container by looking at the cgroup entries for the
init process.  This method is described at
http://stackoverflow.com/questions/20010199/determining-if-a-process-runs-inside-lxc-docker#

Basically, if /proc/1/cgroup looks like this, we're not in a lxc
container:

    9:hugetlb:/
    8:perf_event:/
    7:blkio:/
    6:freezer:/
    5:devices:/
    4:memory:/
    3:cpuacct:/
    2:cpu:/
    1:cpuset:/

But if they look like this then we are in a container:

    9:hugetlb:/lxc/e411045bbbc61eca5d3af7eb0764c30833606f51d20c176f406afbdb47bb04be
    8:perf_event:/lxc/e411045bbbc61eca5d3af7eb0764c30833606f51d20c176f406afbdb47bb04be
    7:blkio:/lxc/e411045bbbc61eca5d3af7eb0764c30833606f51d20c176f406afbdb47bb04be
    6:freezer:/lxc/e411045bbbc61eca5d3af7eb0764c30833606f51d20c176f406afbdb47bb04be
    5:devices:/lxc/e411045bbbc61eca5d3af7eb0764c30833606f51d20c176f406afbdb47bb04be
    4:memory:/lxc/e411045bbbc61eca5d3af7eb0764c30833606f51d20c176f406afbdb47bb04be
    3:cpuacct:/lxc/e411045bbbc61eca5d3af7eb0764c30833606f51d20c176f406afbdb47bb04be
    2:cpu:/lxc/e411045bbbc61eca5d3af7eb0764c30833606f51d20c176f406afbdb47bb04be
    1:cpuset:/lxc/e411045bbbc61eca5d3af7eb0764c30833606f51d20c176f406afbdb47bb04be

The identifier is the container id and might be useful for a future fact
to identify the container Facter is running in.
Revert "(FACT-451) Add Cumulus Linux distro to Debian OS family"

This partially reverts commit 919034f4de449bd56f60de6e7f748046aede76c0;
keeping the addition of the missing osfamily spec file.

The CumulusLinux distro detection isn't present in stable; backing out
the change to osfamily for CumulusLinux.