Basic types, draft
Use sets for Rules. case-classes for Rule and Symbol. Reuse MutableRules for synonims.
Fixed test
Draft of derivation (not tested)
Fixed cognitive rules
Mock grammar for testing
Fix inverting of sentence when convert it to symbols
Test derivation, implemented as method, no actors.
Test for derivation (missed in pervious commit)