Fix puppet 3 issue with multiple classes and functions by moving re-initing puppet each catalog compile

This fixes the issue described in #60 and #58 for me.  It passes tests on puppet 3 also.

I'm positive there is a better way to re-initialize the puppet engine, however, I tried calling various clear methods before settling on this with no positive results.