Add setDiskAutoDelete to InstanceApi

Converts AttachDiskOptions to AutoValue.
@adriancole does it make sense for AttachDiskOptions to be done with AutoValue? I'm still trying to get used to it. 

Also I'm trying to understand the interplay of  NewInstance.Disk, AttachDiskOptions, and Instance.AttachedDisk. They seem redundant and Im wondering if that is  intentional?
Oh interesting! I was wondering what the other input parameters were.

https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk

So, here's my recommendation. Extract NewInstance.Disk as literally AttachDisk (as that's the instruction we are representing). Kill the options thing.

Retain the existing shortcuts (ex. Disk.newBootDisk), and add a non-complicated builder. Non-complicated as-in, only methods for each field, no special-casing. No null checking. Ex.

```java 
Builder name(String name){
  this.name = name;
  return this;
}

// repeat for all fields.
```

After that, we have shortcuts for a couple known-cases, but we don't add more until users ask. They can use the builder in the mean-time.

Sound good?