mix: M2.5 part1

M2.5.    [Auto-Transactions]
Possibililty to name several transactions and inspect/debug their execution.
Please make this `ContractDefinition const*`, `getNodes` returns non-const pointers only due to a limitation of vectors of shared pointers. And perhaps replace `at(0)` by `front()`. Suggestion:
`ContractDefinition const* def = &dynamic_cast<ContractDefinition const&>(*unit.getNodes().front())`
This will throw if the object is not a ContractDefinition.