Add :publicly_available to Templates

Now Templates can be public or non-public.  This exposes the public flag on
images from cloud providers.

For Openstack, this information is available on the detailed image information
retrieved from the Openstack Glance API.

For Amazon, to avoid making an additional EC2 API call per image, the
:publicly_available information is derived from how the images are gathered by
the EC2 Parser.  For instance, get_private_images sets :publicly_available =
false, and get_public_images sets :publicly_available = true.
Well, hrm ... this is a bit sneaky, to be honest.  There's still a instance var `@template`, but it's only set in one of the methods that calls this method.

The problem is that the rest of the test depends on the various instance state that's built up via calling `assert_specific_model_thingy` over and over.  So, in the end, there are assertions that attempt to tie together various objects collected during the refresh (i.e., was this VM really launched from that template?  does this host really own that VM?).

So, it only *looks* like I cleaned up state.  I really only moved it. :(