(FACT-185) Provide flattened version of EC2 facts

To maintain compatibility with the existing EC2 facts, we need to return
both a structured version of the EC2 facts as well as flattened
versions. This has the unfortunate side effects of forcing fact
evaluation at fact load time, but between the options of managing a
singleton object, duplicating the API queries, and forcing the
evaluation, the last one seems the least bad.
(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) Reimplement EC2 userdata fact
(maint) Define Util::Resolution#resolution_type

The resolution_type method is needed when reopening a fact definition
with the Facter 2.0 API:

Facter.define_fact(:myfact) do
  define_resolution(:myres) do
    # [...]

The aggregate resolution type implemented this but Util::Resolution did
not, which could cause errors using the new syntax. This corrects the
omission.