Update GrSemaphore to allow it to only be used once for signaling and once for waiting.

This is required for Vulkan which doesn't allow a semaphore to be waited on by
multiple things at once or signaled from multiple places.

Bug: skia:
Change-Id: Iac0cb782a6662167c2cab1fd6a2c80378834a480
Reviewed-on: https://skia-review.googlesource.com/92601
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
14 files changed