Added more assertions and parallel test runs

Many of the additions found in Java 8 can be used for Unit-testing. These changes offer:
- a set of ```assertThat``` functions that use the Java 8 Predicates rather than those in the hamcrest library
- a set of ```assertForAll``` functions that can be used for collections
- a JUnit runner which will run tests in parallel (unless explicitly told not to)
- annotations which tell said runner to run one specific test in a class as the first test and another as the last test (e.g. for asserting that the setup was successful / that the teardown can begin)
Future changes will address the issue of parameterized testing.

One downside: The backwards compatibility to Java 7 is gone.