added workload dispatch logic to avoid tons of msgs sent to workers by router
Merge branch 'master' into develop
Make some minor changes to avoid possible latency

- Abandon the function calls when Worker actors receive Work msg

- Abandon scala.math.ceil() and use toLong() instead

- Use Long instead of Double to store sum of squares
Make some further changes to avoid possible latency

- Use sum of squares equation to calculate instead of simple for loop

- Output final result directly from Master instead of sending to Listener
Make more changes to avoid possible latency

Print out the start index of sequence from the Worker actor directly
All the related TreeSet storage structure and Result msg is removed
But the sorted order of output can no longer be guaranteed
Revert "Make more changes to avoid possible latency"

This reverts commit 90aee6dd490dde181542526f175aba2e454be619.
Make more changes to avoid possible latency (UPDATED)

Print out the start index of sequence from the Worker actor directly
All the related TreeSet storage structure and Result msg is removed
But the sorted order of output can no longer be guaranteed
Make last try to avoid possible latency

Get rid of Listener actor and shutdown the system from Master directly
Fix a bug in Master on receiving Assign msg

Master wrongly iterates from 0 through nWorkers which means
one more unnecessary workLoad is assigned to the first Worker
Make another try to avoid possible latency

Abandon RoundRobinRouter and manually handle Worker actors
from creating Worker arrays to assign each Worker a task to do