POSIXUsers: Handle unicode gecos attributes

Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
bcfg2-crypt: prevent traceback for certain decrypt failures
bcfg2-report-collector: use separate sysconfig file from bcfg2-server
Yum: better errors when yum helper output isn't valid JSON
MultiprocessingCore: greatly simplified parent-child RPC, removed non-thread-safe bits
Core: track statistics on resolve_client
Multiprocessing: proxy RecvProbeData calls

This proxies RecvProbeData calls to child cores to expire the probe
cache.  The probe data itself is not relayed, just the fact that there
was probe data received from a given client.

Fixes #129.
Probes: fixed unit test
Multiprocessing: fixed resolve_client call
Metadata: Don't update XML on gratuitous profile update

Check to see if the profile that is being set by set_profile
exactly matches the existing profile list.  If it does, then avoid
writing out a new clients.xml. This simple optimization reduces
the amount of clients.xml rewriting that occurs if you have a
bunch of clients running bcfg2 -p at the same time (for example,
during a cluster rebuild).
Make pylint happy
Found a stray write that should be part of the new client case
Adjust test

Don't need to check write() because update_client() calls it
Make updating the structures conditional on profile changing

Based on the expectations of the tests, I am reasonably confident
that updating the in memory structures is logically part of changing
the client's profile so I put it in the if block
bcfg2-report-collector: removed extra slash from init script
bcfg2-yum-helper: fully download group metadata during makecache
bcfg2-yum-helper: disable pylint check
Core: log when a cached metadata object is used
MultiprocessingCore: log some messages as debug, not error
Plugin: quiet down set_debug, but keep it useful