Moving StartTransaction to Transaction.Start

Also removing virtual keyword from some subscription methods that didn't
need to be virtual, to keep the Behavior class small.