FEATURE: added puppetdb support to smart proxy

This adds support to use the same query language for puppetdb but against the smart proxy which proxies the request to the puppetdb.  This isn't meant to be merged just yet, but I wanted to put it up for code review.  I still need to fix some comments and write up some docs first before merging this.

Also, I added the puppet gem to test.rb because its required but wasn't included.  I guess most people already have puppet gem installed so it must have slipped through the cracks.