Change ProjectedPathConversion to use continuation passing style

o Simplified PathValueBuilder
o Pulled out projectionStepConverter
o More tests