Implemented a check that will only repeat 'apt-get update' calls if there's a change to the sources list.

This check uses a cache file in /tmp. The file should be fine for a single deploy, but may be cleared across deploys. This check is conservative and will do an 'apt-get update' if the cache file is missing.
Fixed a typo.
Added a way to retrieve the OS version for an instance.
Added a way of specifying packages to be installed by OS version.
Omit the @os_version and @capistrano ivars when converting an InstanceItem to a hash.
Support fetching the OS version even when Capistrano is unavailable, if we can.