Remove nil values & empty hashes under base_config

See https://github.com/sensu/sensu-chef/commit/074c30488354f001d53185b027d00158c09ef9ed @martinisoft

Code is more verbose than I'd like, so comments welcome. There are some fine points here, but perhaps we can simplify.
* I put it under base_config only, as in other providers (check, handler, snippet) users might rely on levels of hierarchy to exist even if empty.
* The code does not remove all 'empty' variables, just empty hashes. An empty string might mean something, but I think a nil value should not, at least in the context of base_config.