Fix backpressure not working bug

The input buffer status checking fails the backpressure in the
following conditions:
1. Firstly, by design, given two adjacent events with the same type,
the second one will not be triggered
2. Then, given buffer full, start to execute buffer full listener
3. at the same time a thread polls a data from the input buffer
4. now the buffer is not full, channel read pausing is not conducted
5. the buffer full event will not get triggered anymore because of 1.
6. The backpressure is broken.

remove the checking codes fix the problem.
Add big data tests

Temporarily add a special download_test api to implement big data
download test. This method can be removed if query result
stream-back to client is implemented (if needed).
Remove dependency on test package
add test-specific timeout to pass Travis
Fix another cause: remove pipeline executors.

The pipeline executors have their own memory management mechnism by
specifying the estimated size of message caches. However, they can not
work together with FlowControlInputBuffer or any other backpressure
mechnisms.

The reason is that Netty provides a boolen switch for each connection
to turn on/off of data transmission. The executors and the
FlowControlInputBuffers are both using this switch to implement
backpressure. If we have both the executors and the
FlowControlInputBuffers present, we have three layers of threads:

Netty worker threads --> pipeline executor --> myria query executor

--> here means push message into

When the myria query executor finds the input buffer is too full, and
turn the connection switch to stop read data, the pipeline executor
does not know that, it continues push data into input buffer and
restart the network data transmission.

Currently what the pipeline executors do are justing
serializing/deserializing messages, removing them should not hurt the
performance.
Fix a deadlock problem

The actual resume read and pause read of connections are conducted by
netty worker threads, when query executor threads call these methods,
the awaitUninterruptably cause the query executor threads to sleep
when they are holding the spin locks. And the Netty worker threads
need these locks to get information when conducting the actual resume
and pause.

Move the resume/pause codes out of the spin lock protected block.
Infinite loop should check the interrupted bit
Only override Timeout Rule can disable the global

Only override Timeout Rule can disable the global timeout setting. The
test specific timeout setting does not work
Merge branch 'master' into slxu-fix-network-backpressure
Merge branch 'master' into slxu-fix-network-backpressure
Merge branch 'slxu-fix-and-improve-deployment' into slxu-fix-network-backpressure
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.
Let logical input channels control their own state

and throw exceptions on error states (mapping) instead of silently try
to correct the state
Add worker/master id to channel toString