New directive classes: `only-ifnot` and `bind-value`

Major code overhaul