Wait until audit phase to load needed files.

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 
I think @sersut added a test for this: if we find a `controls` block with the same name as a previous `controls` block we should raise an error.  But since there is already a test for this, lets leave it for another PR to fix.  We already have a lot of changes in flight.