Re-apply "Merge pull request #185 from zendesk/gabetax/explicit_namespace_class"

This reverts commit 338e3c755cea55cb87e59275621661d654605a7a.

A bug was revealed in the development of this PR, but was not caused
by the PR itself. Fix for the bug coming in this branch.
fix `clients.foos` syntax from using classes outside of the appropriate namespace

### Example

You can fetch the `Zendesk::Voice::Greeting` resource using `client.greetings`. Previous to this fix, if you also had a top-level `::Greeting` class defined, it would attempt to use that class instead, raising an exception. This happens because `Module#const_defined?` searches ancestors by default.
change Voice back to a module
Merge pull request #189 from zendesk/gabetax/namespace_resolution_fix

fix `clients.foos` syntax from using classes outside of the appropriate namespace