[#1113] Allowing writing configuration settings.

Problem description
===================

We would like to allow writing configuration using an external API.


Changes description
===================

The previous code was an ugly hack and also insecure. Properties were exported using an implict rule.

To improve security, we only want to export selected attributes.

2 new attributes were defined for an interface: PublicAttribute and PublicWritableAttribute.

The configuration mixin will check the interfaces defined for an object and only export PublicAttribute and only allow writing PublicWritableAttributes.

The Attributes are also valid for section names.

This branch also include some drive-by renaming from HasSomething or SomethinBase to SomethingMixin.

This branch also included a proposed solution to replace the static/event.json files from utils, with custom error exceptions which have the message and event_id defined as attributes.


How to try and test the changes
===============================

reviewers 

Check the changes and let me know if using Interfaces for defining what is exposed to the JSON-RPC API make sense.