Initial commit - 'beefing up' the so far rather basic Cascading Count abilities of our DataStore.
* BusinessCodeSetup.ManualCode.cs and OccupationCodeSetup.ManualCode.cs have a temporary addition (Method 'DeleteRecord') that will in the end go into auto-generated code of a Form.
Added/finished XML Documentation of new Method and Class.
Added capabilities for storing the names of the Primary Key fields of each Referencing DB Table and the values of each Referencing DB Table's first referencing record. (That information is not used yet, but will be used to improve the TVerificationResult's text that is displayed to the user.)
* For testing only: Added method 'DeleteRecord' to PositionSetup.ManualCode.cs to be able to test multi-column-PK DB Tables (this will be auto-generated and be put into the -generated.cs file of the Form at a later stage).
Improve building of data structure and message that are built for cascading count operations, esp. the handling of multiple levels of cascades.
*Tentative* fix for Bug 1869 (https://tracker.openpetra.org/view.php?id=1869) - needs more testing, esp. for side effects caused.
Fix missing PK info and data for cascaded DB Tables that were deeper than one level down in the cascading count.
DataCascading.cs:
* remove unnecessary using statement
* move Dictionary declaration into an optional code part to prevent compiler Warnings in case the optional part isn't generated.
Further improve the message text that is generated so it is hopefully more helpful to the user.
Two bugfixes: 
* cope with cascading tables that are gathered as references *in any order* (not just if they are grouped together)
* fix table reference count in template cascading count.
Add Keys and values for 'first referencing table in the cascade' to the validation message.
Fix for the generated text for two cascading situations that I wasn't catering correctly for:
* make 'breaks' in the cascade work 
** after a cascade has gone down several cascading levels and then comes back eiterh one, more or all cascading levels;
** in case there are several DB Tables with referencing records on the same level of a cascade i.e. the cascade doesn't go further down cascading levels but stays on the same.
merge from trunk
merge from trunk
Auto-generated SubmitChanges Methods: Add Cascading Count checks for deleted records.
* DataAccess.cs: Cascading Count checks for deleted records.
* Utilities.cs: Make Method 'GetPKValuesFromDataRow' work with deleted records, too.
* Main.cs: Method 'DowngradeScreenVerificationResults': don't downgrade TVerificationResult objects, only TScreenVerificationResult objects.
* DataValidation.cs: Method 'ProcessAnyDataValidationErrors': show different message if the data validation error is about a record deletion error that is caused by referencences pointing at a record.
* Messages.cs: Method 'MsgFormSaveVerificationError': show different message if the data validation error is about a record deletion error that is caused by referencences pointing at a record.
Fix for code that is auto-generated for the 'SaveChangedStandardCacheableTable' Method: correctly return TVerificationResultCollections that are returned from DB calls to caller of the 'SaveChangedStandardCacheableTable' Method.
Follow-up on Rev. 2152, which provided a bug fix for Bug #1869 that was seen as tentative then:
* That bug-fix is now confirmed to work and to not have any known side effects.
* Extended the bug-fix to another overload of the LoadViaForeignKey Method that works with DataSets rather than DataTables as attempts to use this Method resulted in the same Exceptions than the overload that works with DataTables previously threw.
* Method 'GenerateWhereClauseForJoin': Added Argument checks.
Undo my changes to the BusinessCodeSetup, OccupationCodeSetup and PositionSetup screens that were needed to fully test the cascading count feature introduced in this branch. (Those temporary changes should not end up in trunk.)
nant uncrustify
Added Catalog.GetString() where it was still missing.
Fix indentation.