add validateAsynch and checkAsynch

When excessively validating properties and requireing IO operations for some validations, asynchronous calls can be very handy.
The implemented calls validateAsynch and checkAsynch have the same signatures as their synchronous counterparts, but return
a java.util.concurrent.ComplitableFuture instead of void or boolean.

validateAsynch return a future which returns the actual value again on calling get().
checkAsynch returns a future which return a boolean value (if valid or not) on calling get().

When the error handling action throws an exception, it can either be handlet when calling get() and catching the ExecutionException,
its cause attribute will be the e.g. ValidationException, or use the handle/handleAsynch continouation functions.

Further tasks in this branch:
- clarify state issues on Validator instances and ValidcoolConfiguration
- should we wrap completable future?
- combining validations
Merge branch 'master' into asynch

Conflicts:
	src/main/java/org/validcool/Validations.java
first working version of asynchronous validation

The validateAsynch operation mirrors the signature from validate, but
additionally offering a validation hint parameter, indicating wheter
the validation is computationally heavy, simple or contains IO
operations. Computationally heavy and IO operating validations will
be excuted in seperate execution units, while all simple computations
are collected into one.
provide interface to asynchronously validate one property

when calling validateAsynch you can now immediately start the
asynchronous validation without passing to the validate function, simply
by calling validateAsynch(...).run(), which returns a CompletableFuture.
add readme examples and documentation for asynch