PDI-10641 correctly handle row execution

* clean up cached results of execution when each row is passed to row executor
* refactor the code to allow unit testing
+ add unit test
PDI-7811
What was done:
1) Refactored FTP job step to add testing possibility
2) created fake FTP client to be used for testing
3) created unit tests demonstrating both correct and incorrect behavior
PDI-7811
What was done:
1) changed filename processing -- a logic escaping protocol was added
2) unit tests testing path prefixed with protocol were added
[PDI-9956] Added reset for the batch counter and unit test.
Teradata and Update Step throws "Unable to empty ps and commit connection" error when commit size is in incrememnts of 10,000/1,000/100/10
[PDI-10503] Synchronize stream loggers

Synchronize stream logging threads with the thread they are called from.
Merge pull request #60 from askdzmitry/PDI-10641

PDI-10641 correctly handle row execution
Merge pull request #62 from stepanovdg/PDI-9956

[PDI-9956] Added reset for the batch counter and unit test.
PDI-8195 - incorrect step Synchronize After Merge metrics
What was done
1) added fix to the case when lines are flushed at dispose step
Merge pull request #61 from kolinus/PDI-7811

Pdi 7811
Merge pull request #76 from askdzmitry/PDI-10503

[PDI-10503] Synchronize stream loggers
Merge pull request #89 from kolinus/PDI-8195

PDI-8195 - incorrect step Synchronize After Merge metrics
[PDI-10846]: Refactored Kettle build/assemble to use Pentaho conventions
Merge pull request #92 from mattyb149/PDI-10846

[PDI-10846]: Refactored Kettle build/assemble to use Pentaho conventions
[PDI-10846]: Changed Kettle Log4j Plugin JAR config in Ivy to default
Merge pull request #94 from mattyb149/PDI-10846

[PDI-10846]: Changed Kettle Log4j Plugin JAR config in Ivy to default