Construct a dictionary containing attributes from obj

This is useful as a helper function in objects implementing the SupportsJSON protocol, particularly in the _jsondict method.

In addition to keys and values specified by attribute_names, the returned dictionary has an additional key "cirq_type" whose value is the string name of the type of obj.

obj A python object with attributes to be placed in the dictionary.
attribute_names The names of attributes to serve as keys in the resultant dictionary. The values will be the attribute values.