I have moved the deletion and filter/find code out of the templates and into objects that require interfaces.  This reduces the amount of code in each screen.  The screens implement the new interfaces.  This saves a lot of code from being copy and pasted between templates when it is not really template dependent.

This check-in commits the templates, some small changes to the code generator and the new objects and interfaces.
This is just a further small change that gets some code out of every template and into a common place that is accessible everywhere.  The calls are static.
All these changes are to manual code files that use Filter/Find.  The changes are just semantic due to the fact that code is now in the new FilterAndFindObject.
Uncrustify
Merge from trunk.  There were 2 conflicts.
Merge from trunk
This had a BAD MISTAKE!  The reference counting code was wrong on multi-row delete.  The problem is not with this new code.  The problem was also in trunk for the last 1+ year!  It was by refactoring the code that the issue came to light.  Basically the reference check on multi-delete always used the current row rather than each successive row.
Found that it was not possible in practice to set up the filter/find controls in the constructor of the new object (because that call could require to use the object (which is null until the constructor completes).

Also added the code that was required as part of the conflict resolution from the recent merge from trunk.
These are some small changes that are required as a result of testing.  The AP screens always were a bit different and this makes them more consistent (and better) due to the interface definition requirements.  There is no change in functionality - just that the code is now in the same place as other screens.

This checkin also has the template change for the nasty deleteReferenceCount issue in the previous check-in.
This moves SetRecordNumberDisplayProperties method into the FilterAndFindPanel object, which makes more sense (and reduces the code in the templates too!)
Merge from trunk
Uncrustify
Fixes to import process
Fixes to GL Import
Merge from trunk.  No conflicts
Fixing of GL Batch Import
This is not a functional change, but adds a test to the code that shows the Fast Reports error popup.  If we have not been launched from the main window we do not show the popup.  This is because when we run nant test a new database is created so we lose the option to suppress the messages by adding a row to the system defaults table.  We know if we are running a test because the Petra Utils Object caller form is null, whereas when we are launched from the main menu the caller form is non-null.

Note the bug #3188 does not refer to this checkin but is the bug for this branch as a whole.
Started work on test for GL Import
Post merge with trunk
Added test for transaction import.