Make integers come out in JSON as integers.

There are places (for example if you pass keepalive/threshold values to
the keepalive check in custom_client) where it matters about the type
of the variable coming from the JSON - Sensu looks for .is_a?(Integer)
and so if you quote the integers in the client config then it breaks.

There is already a to_type method which was replicated in a number of
places - however it wasn't recursive, and (at least in the case of
the client config) you can have a hash of hashes.

I've pulled this method out into a common mixin, and reused it from all
the places which use it currently + added it to the custom= methods
in providers so that things are munged on the way in, and also to the
client_config type to make data comparisions work as expected