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 `package` DSL issue came from https://github.com/serverspec/serverspec/blob/master/lib/serverspec/helper.rb#L3 which calls https://github.com/serverspec/serverspec/blob/master/lib/serverspec/helper/type.rb#L17

At this point, `self` refers to the main Object.  Executing `require 'serverspec/helper'` extends the main Object with the helper methods, and `package` is one of these.

But I'm writing some tests right now and I don't know if this is still an issue.  I think moving the `require 'serverspec/helper'` _later_ in the execution may have fixed it.