First implementation for multi-threaded of samoa on local machine
1. The number of threads used in the main Engine is specified in samoa-local.properties
2. ParallelMasterProcessingItem creates multiple ParallelWorkerProcessingItem and pass ContentEvents to the worker
3. The workers are allocated to the threads (in the pool) in a way that a worker (and its processor) will be allocated to only one thread during the whole
process to ensure linearizability in the context of 1 Processor
Clean up some code
Some unit tests for Master, Worker PIs and ProcessingTask
Changes in run script (bin/samoa) to read from properties/options file
Use PriorityBlockingQueue for thread pool to preserve some order among execution of different processor and notify entrance processor (now only PrequentialSourceProcessor) when thread queue size is large
Merge branch 'master' of https://github.com/yahoo/samoa
Merge with master
Merge branch 'master' of https://github.com/yahoo/samoa
Init Kappa array in evaluator with instance.numClasses() instead of classVotes.length
Manual revert old impl of multithreads
Manual revert old impl of Multithreads
Merge branch 'master' of https://github.com/caseyvu/samoa into api
Abstract classes for topology components, delay between input instances
Undo change in bin/samoa-storm.properties
Revert "Init Kappa array in evaluator with instance.numClasses() instead of classVotes.length". Merge with the other pull request to fix the bug.

This reverts commit 7c025dca525cbd235bd1a165a44d9b77d6d0fb0d.
Merge pull request #70 from caseyvu/api

API changes