Introduction of all-new 'Automatic DB Transaction Handling' Methods to the TDataBase Class: GetNewOrExistingAutoTransaction, GetNewOrExistingAutoReadTransaction, BeginAutoTransaction, BeginAutoReadTransaction, AutoTransaction (all Methods are overloaded).
These Methods ensure that no 'dangling DB Transaction' is left when a code segment that is 'scoped with' those Methods is run --- 'Dangling DB Transactions' have been - and indeed are - common causes of several Bugs that got filed for OpenPetra!

Documentation about that new feature can be found in the XML Comments of the Methods. More complete documentation will be added to the OpenPetra wiki, too.

Also in this Commit:
* Access.cs: 
** TDBTransaction gets a 'Reused' Property/Flag that is normally false and gets set automatically to true by the GetNewOrExistingTransaction Methods if a Transaction was indeed re-used
*** better than the current 'out ANewTransaction' Argument of the 'GetNewOrExistingTransaction' Methods because one Variable less is needed and the 'Reused' state can be tracked across several 'chained' Method calls!
** TDBTransaction gets a 'Valid' Property/Flag that is true if the Transaction hasn't been Committed or Rolled Back, otherwise it is false.
** could be useful when 'DB Transactions for Writing Span Several Methods', but not just for that!

First uses of those Methods:
* Common.Posting.cs: the two overloads of the 'CreateABatch' Method now use the new 'GetNewOrExistingAutoTransaction' Method.
* Cacheable.Server.cs: the auto-generated Methods for the server-side implementation of Cacheable DataTables now use the new 'GetNewOrExistingAutoReadTransaction' and 'BeginAutoTransaction' Methods, respectively.