Refactor code

* removefailfast strategy
* When a field is failing, we prevent the "Required" condition to fail
Change project behavior (read ahead)

* All arguments are now mandatory
* Required keyword has been deleted
* Coercion has been removed
* Extra has been removed
* Error reporting is done per path (dict)