Working on expanding the functionality

Added reachability matrix.
Todo:
- Compute weights based on reachability;
- Compute weights at random
- Use enumerations for parametrisation
- Reduce bloat, remove unnecessary constructions and functions
- Fix the order of matrix processing, it is wrong everywhere (!!!)
- Construct sorting networks with the notion of priorities.
- Use cardinality networks type 2 to reduce the volume of encodings