Namespace aliases in pp

This fixes a bunch of issues related to namespace aliases and should close #781.  It also +1s what we count as a 'class' to include structs, templated classes, and templated structs.  This was trickier than I suspected. 

On a related note, I am not really a huge fan of using `cyc` to alias `cyclus` is a project called 'cyc'amore.  Even `lus` would be a better alias.