[WIP] Solver optimizations

- Literals on rule are now public: A reduction of ~500k function calls for packagist composer
update (~14 million total).
public properties should come before protected ones