Parse full worker/master deployment line

append db_name and id to the parsed results
Fix default path set, drop worker id 1- assumption

Worker id is a non-negative integer sequentially from 1 is a wrong
assumption.

default path checking will not be correct when empty field string,
i.e. ::, presents.
Fix startAProcess

simply split a string is not correct. In "ssh address shell_commands",
the third argument should be a single string. The old code will split
the shell_commands to an array of strings and serves into
ProcessBuilder, which is not correct. It did fail with mysterious
errors when I added some more commands into  the shell_commands.
Set worker working dir to separate paths

In the current code, workers of the same deployment on the same
machine will write logs into the same englink-log4j.log file which
makes the log file useless.
Simple extension to kill_all_java_processes

Able to kill all processes with the same name, not necessarily java.
Useful when for example doing debugging on cluster where non-java
processes get started for monitoring machine status.
Merge branch 'slxu-fix-and-improve-deployment' into slxu-fix-network-backpressure
Process SQLException.getNextException

The actual cause of a SQLException is usually hidden in Exceptions got
by calling getNextException.

There was a out of disk error in postgres several days ago. The out of
disk message was not in the caught SQLException but in the
getNextException.
Merge branch 'slxu-improve-sql-exception-processing' into slxu-fix-network-backpressure
Process query init in query msg process executor

The netty IO threads only do network transmition and data
serialization/deserialization.

The old implementation may cause distributed deadlock because
1. network connections are created in producer.init
2. init is blocking
3. Assume that Machine A. producer 1.init is executed by worker1, and it wants to
connect to machine B.consumer 1, and in the same time, Machine
B.producer 1 executed by worker 2 wants to connect to Machine A.consumer 1.  But
unfortunately, Netty assigns connection acceptance in Machine A from
Machine B.producer 1 to worker1, and also it assigns the connection acceptance in
Machine B from Machine A.producer 1 to worker 2. Then deadlock
happens.
Remove ID checking timeout

Useless, always report false connection errors. Let the error handle
code process connection problems.
Searialize channel readability setting

This is the major fix of this branch. The Netty framework actually
does not guarantee the same order of actually setting the readbility
of a channel as the order of the setReadability method call when
called sequentially by different Netty worker threads.  This problem
may cause unexpected delayed read pause, which is the main cause of
query hang.

Implement the sequential actual readability setting.
Execute flow control listeners directly

Put the listeners into an executor may break the readability setting
order
Make StreamIOChannel thread safe
Use NullChannel to replace null in ChannelFuture

To remove possible NullPointerException. Meet one in an experiment.