[#1541] Don't set bad values for options.


Problem description
===================

The previous version of chevah-utils, was stupid and was setting all values as strings without validation... and validation was only done at read time.


Why we got into this (5 whys)
=============================

* Bad thinking when implementing the code.
* There was no use case for writing values at that time.


Changes description
===================

The code was update to validate input value before setting it.

The interfaces was update to include the important methods for ConfigurationFiles.
Not all method were included in the interface since I think that it needs a refactoring... some  methods like getStringSpecial have silly names.


How to try and test the changes
===============================

reviewers @alibotean 

Check that changes make sense.

Thanks!