Automated tests for various algorithms and platforms

This patch adds a module that contains test-related classes. Tests can be defined and configured through templates. We use the test module to implement tests for several classification algorithms for local, threads and storm platforms (for now).

Also includes a fix for handling last event in stream.

Introduces the surefire plugin for tests, so we can get proper test output files and configure test VMs. (we might still have to customize travis for maven's VM parameters)
The test framework code is in the samoa-test module.

It is referenced along with its dependencies by the various platform modules through a test-jar artifact.

Each platform module specifies 
* which tests it runs (e.g. the naives bayes test currently does not run in parallel)

and for each test:
* the task class for the platform
* the input parameters as well as the expectations. 

In summary, we reuse the code from the test framework but customize tests according to the platform capabilities.