Change ProjectedPathConversion to use continuation passing style

o Simplifies PathValueBuilder
o Pulls out projectionStepConverter
o Removes ProjectionSteps
o More tests