Use primitive projections and eta

This allows us to eliminate various redundancies, such as the manny
variants of duals.

This closes #425.