separate rule priority in a sub interface
add implementation of basic and composite priority rule
move priority details to dedicated priority rule implementation
make rule engine interface generic
update tests
update tutorials