Puppetclass search_by_host doesn't return all classes for an unknown host

Tests for puppetclass API searches on nonexistent hosts

Puppetclass search_by_host does not fail if Host does not belong to any Hostgroup

Puppetclass search_by_host query looks for distinct puppetclasses instead of pruning them afterwards

Puppetclass pluck uses DISTINCT instead of .uniq on the result