(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