basic implementation of validation levels

Closes #6213
I decided to implement the most basic functionality first and work on everything that takes a bit more of work in different issues.

(a) is corresponding to issue #6240 at chili and there is a comment in the code about it. I'm actually working on that right now
(d) is as well commented in the code and correspond to the issue #6211
(e) I'm confuse about this point, because this was not in the original text that we have discussed (see the email in our mailing list). I have to talk about it with elijah to see if he added to the pad. I think this should be modify or removed.