[transaction] initialize transaction data and state related attribute.
There is not reason to not explicitly declare and initialize attribute in
Transaction.__init__. This change requires the introduction of a
Transaction.clear() method to get ride of some wicked ``AttributeError`` based
logic.