Alow to select processes in groups in more flexible manner

We now can use more than 1 node per chi8ld process in group
Move common functions into DDP module
Report reason if main process exits abnormally
Don't check whether all children terminated

It's very real race condition
Add command to query number of available nodes
Implement hierarchical DDP (produces wrong results so far)

Also refactor older DDP variants.
Allow some simplt matching on message tags
Small refactoring;
Remove unused imports
Swtich to plain reading from file mmap vaiant is broken

mmap version doesn't read data from vector but allocate memory(!)
using mmap and reads data there.
Fix plain reading from file.

It was broken too. Offset wasn't passed in number of double not
in bytes. Bug was masked by fact that we used chunks that was multiple
of 8, all values in file was same and that no one was looking at result
And once again I forgot to add file to version control