[google compute] improved Images coverage

Updates to improve the `GCENodeImage` coverage of the GCE API.  Specifically, this update has:
 * Added object attributes to match the upstream Image resource (e.g. `diskSizeGb`, `sourceType`, etc)
 * Moving toward deprecating older attributes such as `preferredKernel`. This has long been removed from the GCE API, but there is a chance very old customer images still retain this value.
 * Add support for setting timestamps for deprecating images for when they would will be automatically marked as `DELETED`, `OBSOLETE`, and `DEPRECATED`.
 * Also adding a nice-to-have feature for allowing users to specify a search-list of projects versus just the user's project and hard-coded list of supported image projects.

No breaking changes introduced and tests have been enhanced for these changes.
Sorry for a late comment. Number of duplicated lines of code could be reduced by doing something like that:

```python
for attribute, value in [('deprecated', deprecated), ...]:
   is value is None:
    continue

   try:
    timestamp_to_datetime(value)
   except:
    raise ValueError('deprecated must be an RFC3339 timestamp')

   image_data[name] = value
```

Anyway, that's just a suggestion and not a priority :)