Add a Chef::Audit::Controls object to help with namespacing

This solves two of the problems we are currently seeing:

1. RSpec configuration shared by audits and our own spec tests cause undesired behavior when running `rspec`,
2. Serverspec types interfere with Chef DSL (e.g., `package`).

\cc @tyler-ball @sersut 
The originating issue was the fact that Serverspec defines `package` DSL method at the top level which conflicts with our existing `package` DSL method.

I think it's a good idea to have a dedicated context when we're evaluating the block given to `controls`. This seems like a change in that direction but I'm not quite sure if this is the right way to do it.