Introduced a layered mixin architecture for fifi

... including unit tests for every class.

@petya2164, @mortenvp, and anyone else interested - have a look :)