Documentation
Code tidying
Moved machine strings out of Solver_core
Return dependency information as a record

Makes it easier to add synthetic dependencies.