add hash function pool
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
Detailed explanation of worker deployment configs,

especially add illustration of worker specific database
configurations. And extend DeploymentUtils a bit to handle empty
working dir.
More verbose messages in file delivering

Simple message display, but helped me a lot in identifying problematic
machines during the experiments in the last several days when the CSE
network was unstable.
Merge pull request #593 from uwescience/slxu-simple-enhancement-deployment-usability

Slxu simple enhancement deployment usability
Merge branch 'master' into slxu-fix-network-backpressure
Aggregator: rename to PrimitiveAggregator
Aggregate: port over to JSON-able interface
Aggregator: refactor into AggregatorFactory

Duh, we will need this for SingleGroupByAggregate and MultiGroupByAggregate
SingleGroupByAggregate: move over to factory-based, generic aggregator framework

And fix all the tests and other code.
Aggregate: simplify creation code
MultiGroupByAggregate: port to new AggregatorFactory-based format

And update callers/tests
PrimitiveAggregator: remove bitmask, replace with enum

1) users can now control the order of output fields.
2) catch bugs where incorrect ints were being passed in