introduce predicate based validator, super class for tests

New validator operation "is" where user can defined description
and function of the validation using the predicate interface:
validate(number, is("dividable by 2", val -> val % 2 == 0));

Abstract class ValidationErrorLogging in test source should be implemented
by all test classes so they share a common logging behavior.
describe is validator in README
introduce better/more comprehensive error messages

Update Validator class to be stateless and more effecient on caller side.
Validators with/and/or are now own implementations of Validator in the
org.validcool.validations package, still exposed in Validations class.

Error message are now created by replacing a substring of "${actual}"
with the actuals values. No lambda is passed anymore to Validator.
new Validator<>(val -> val % 2 == 0, "${actual} is not even number");
The error message should contain the verb and negation for the message.

The not-validator will remove the first not substring found in the
passed validators error message pattern. So when taking the validators
from above: not(isEvenNumber()) will produce the error message:
"${actual} is even number".

The and/or associations will now only log the error message of the
error which actually occurd.

The with validator tries to output the parent as well as child name
or value in the error message.
Merge branch 'master' into asynch

Conflicts:
	src/main/java/org/validcool/Validations.java