Draft: Refactor TorPath code to have explicit constructors.
This patch refactors the internal representation of the TorPath type to use an enum for representing its state. We add explicit constructor methods to create the different types of path's, such that client users can write code that uses different paths based on their need.
This work was done together with Nick as part of the Arti hackathon.