(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-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.

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-469) avoid setting LANG=C in other threads

Pass env vars to system() directly

  * Avoid randomly setting/clearing ENV['LANG'] for other threads

  * Also set LC_ALL=C in case LANG=C is not enough

  * Make execute_with_env raise on failure
prevent uptime specs from running actual commands

* Change uptime specs so they mock actual calls instead of calling cat.

* improve the tests to they are a little less confusing

* get uptime_proc_uptime to properly handle errors