[WIP] Solver optimizations

Packagist's composer update is roughly 14 million function calls
- Literals on rule are now public: Reduction of ~500k function calls
- id on BasePackage is now public: Reduction of ~1.3m function calls
- ruleById on RuleSet is now public: Reduction of ~500k function calls
- Rules no longer depend on the Pool (tiny memory improvement)
should be kept for BC too