Split the dependencies (currently called 'Paths') into individual backends

This allows simple backends like the simulator to run without
complicated configuration.