Velocity templates should be called for ascenedant primary types

Fix for: https://www.pivotaltracker.com/s/projects/684825/stories/79207804
Actually, this whole thing should be condensed into a Guava [Iterators.transform()](http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Iterators.html#transform(java.util.Iterator, com.google.common.base.Function)).