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?
> I just got tired of having to delete things if the tests failed partway through.

Seems like a good plan to me. From the documentation of `alwaysRun` ("If set to true, this test method will always be run even if it depends on a method that failed."), I'd just wonder if this is also run if the methods the test depends on are **skipped** rather than fail.