[#1202] Add CRUD interface for configuration.

Problem description
===================

We would like to handle the configuration object using a RESTFul CRUD interface. :dancers: 

This should simplify the way server is managed via JSON-RPC api. 


Changes description
===================

The diff looks big but it is just because I split some files.

The chevah.utils.configuration_file was split into configuration.

The configuration_file module only contains code for persisting configuration into a file, while configuration module contains generic code.

I have updated the _IWithPropertiesMixin to define an interface exposing CRUD methods.

There interface also defines some general usage methods that can be used for implementing "dynamic" sections. (for services/users/groups)

On the server side users/services/groups will implement custom createProperty/deleteProperty/getProperty/setProperty methods. There will be a separate ticket for refactoring the server code.


How to try and test the changes
===============================

reviewers @alibotean 

Check that the interface make sense.

Check the test_configration.py tests and check that usage of Interface make sense.

For now createProperty and deletePropery had no implementation , only tree traversals.