JCLOUDS-543/JCLOUDS-572: Add support to use slugs as IDs

Use slugs as IDs and assume a node can have a `null` image if it used an imageId that has been removed.

With this change the objects in the portable model will have the "slug" in the ID field and the real ID in the "providerId" field. Private images, which don't have a slug, will also have the real ID populated in the ID field. This will allow users to use the ComputeService using the slugs, which won't change, to search for images using portable code.

This pull request supercedes https://github.com/jclouds/jclouds-labs/pull/58 to properly use the new slug fields provided by the provider api.