mix: M2.5 part1

M2.5.    [Auto-Transactions]
Possibililty to name several transactions and inspect/debug their execution.
If you use this member in a specialised class, you always have to type-cast it, so is it really worth doing it that way?
Perhaps it would be better to store the common parts of Declaration here, which is basically only the name and the source location, and store a correctly typed pointer in the derived classes.