Fix end of stream management

When reaching the end of the stream, we mark the last event accordingly and
set the finished status on the processor. Otherwise the last event is never marked as such,
and tests that wait for this particular event don't properly terminate.

Updated test expectations to match new behaviour (no event is sent after stream is consumed).
Add automated tests for various algorithms

- add samoa-test module which contains templates and test utilities
- test results are currently obtained by monitoring the local output file
from the evaluator
- add tests
	- for local, threads and storm platforms,
	- exercising VHT, bagging and naive bayes algorithms
- for keeping the test duration low, we only inject 200k events, and therefore the
thresholds in the tests are low. We might need to refine the thresholds and number of
events for some of the tests.
- the samza platform is not currently automatically tested
Use surefire plugin for running tests

This is also convenient to pass vm parameters to tests, e.g. max heap size.
Upgrade jmockit to 1.13 and use strict expectations

Current code was written as for strict expectations but did not check the ordering
of operations.
Renamings and docs addressing review comments
Allow microsecond precision for input delay, and use this for threads tests

On travis CI this should allow tests to pass by putting less load on the system
Lower expected threshold for classified instances

Test should pass on travis CI, plus the lower threshold is also fine for detecting
regressions
Merge pull request #114 from matthieumorel/algos-tests

Automated tests for various algorithms and platforms