@dzucconi - Defensive defaultImageVersion no longer assumes image versions exist

`hasImage` was using the `defaultImageVersion` result as a default param if none was passed (I added this). `defaultImageVersion` was assuming that there was a `versions` or `image_versions` array to check. The update checks that they exist first.