Mike validation

Added validation example and restructured according to new standards

see http://validatejs.org/ for documentation on how to do contraints
As discussed, it might be better to have as parameters to the Error: `cause, objectData, errorMessage`.