Rewrote validation module

Now the value to be validated is placed at the end of the chain allowing reuse
and other facilities.

Example 1:
  validation:new().type("string").len(3,5)("test string!") -- false
Example 2:
  local reusable_validation = validation:new().type("string").len(3,5)
  reusable_validation("test string!") -- false
  reusable_validation("test!") -- true
Merge branch 'master' of github.com:Etiene/sailor