(maint) cleaning up specs and comments
(PUP-848) use @property_flush.has_key?

When checking against the boolean value, the hope is that it is set to a symbol
so that the evaluation is against whether the property exists instead of
"true/false", but to be sure, one should check to see if the key exists instead
of relying on a faulty truthy value.
(PUP-1737) sync_check with identity not necessary

Since we are already calculating the sid, we should use it instead.
(PUP-1737) Ace identity to validate values on set
(PUP-1737) Ace.sid = use provider.get_account_sid if available

If the sid is empty when set and the provider has a method to get the sid,
attempt to use that.
(PUP-1737) Ace==

 This implements == for ace so that checking whether permissions are equal becomes easier.
(PUP-1737) validation of scenarios
(PUP-1737) more validation of scenarios