Using utils.pick_microversion means that the result may be None,
which is likely lower than a version negotiated for the resource.
For example, when calling set_node_provision_state(<node name>, "provide"),
it is determined that "provide" does not require a non-default microversion,
so None is used, breaking using node name.
This change switches set_node_provision_state, set_node_power_state and
patch_node to _assert_microversion_for that takes into account the
microversion negotiated for the resource.
Change-Id: Ia81d8a39ca1c8407c689e7d128ace82071b52a01