Validation concept

The first alpha of the validation as discussed with @stoewer.

One feature was not implemented, other than agreed with @stoewer: ```validate``` does not accept variadic params. Reason: variadic params are evil. :) I had not yet tried to use them in a context where you cant deduce the number of arguments. See [problem](http://www.learncpp.com/cpp-tutorial/714-ellipses-and-why-to-avoid-them/) and a possible [solution](http://nerdparadise.com/forum/openmic/5712/). To be discussed.