Add LRO error handling for operations not using `google::longrunning::Operation`
If an error has occurred, we need to correctly interrogate the operation type in the response and construct an appropriate Status object.
@scotthart will take another look.
For grpc we typically return a StatusOr<google::longrunning::Operation> from the stub. As part of extracting the value, we first check the Status, then check if the Operation contains an error and convert it to a Status. If neither indicates an error we extract the response type to be returned from the Any typed field in Operation. This is done via ExtractLongRunningResultResponse.
For the 3 flavors of Operation in compute (global, region, zone), while they do not contain an Any field for the response, they do contain errors and other diagnostic information that we can use to create a Status from the contents of a failed Operation.
Currently there is no REST analog for ExtractLongRunningResultResponse, we merely return the StatusOr<Operation> without attempting to examine its contents.
Still want to do this