Add assertion with meaningful messages and fail late semantics 

This pull requests adds various assertions in the class `de.tobiasroeser.lambdatest.Assert` which give detailed informations about the difference, e.g. index  where collections differ, missing elememts of sets or index position for strings.

Additionally, the class `de.tobiasroeser.lambdatest.Expect` provides almost exact semantics but can mantain a thread local context and supports opt-out of fail fast behavious, which means, albeit an assertion failed, it can continue to check more assertions on the go. At the end, all failed assertions will be reported.