feat(storage): support optionsRequestedPolicyVersion (#9989)

* iam proposal #3

maintain compatibility with defaultdict

remove in place

raise KeyError on delete

update deprecation for dict-key access and factory  methods

clean up

maintain compatibility - removing duplicate in __setitems__

check for conditions for dict access

remove empty binding

fix test accessing private var _bindings

fix(tests): change version to make existing tests pass

tests: add tests for getitem, delitem, setitem on v3 and conditions

test policy.bindings property

fixlint

black

sort bindings by role when converting to api repr

add deprecation warning for iam factory methods

update deprecation message for role methods

make Policy#bindings.members a set

update policy docs

fix docs

make docs better

fix: Bigtable policy class to use Policy.bindings

add from_pb with conditions test

add to_pb condition test

blacken

fix policy __delitem__

add docs on dict access

do not modify binding in to_apr_repr

* feat(storage): support requested_policy_version for get_iam_policy

* add system-test

* add ref doc sample to get_iam_policy

* add requested_policy_version to blob

* fix tests

* nit: typo

* blacken

* fix docs build

* format docs

* remove unused variables
diff --git a/google/api_core/iam.py b/google/api_core/iam.py
index a7a1c00..f130936 100644
--- a/google/api_core/iam.py
+++ b/google/api_core/iam.py
@@ -210,10 +210,10 @@
            policy.version = 3
 
            policy.bindings = [
-           {
-               "role": "roles/viewer",
-               "members": {USER, ADMIN_GROUP, SERVICE_ACCOUNT},
-               "condition": CONDITION
+               {
+                   "role": "roles/viewer",
+                   "members": {USER, ADMIN_GROUP, SERVICE_ACCOUNT},
+                   "condition": CONDITION
                },
                ...
            ]