Change subject of host/class/define specs to a lambda

This is so we can capture exceptions from the catalogue compilation
process inside our matchers rather than at the base rspec level.
Add and_raise_error chain to compile matcher

Instead of

  expect { should compile }.to raise_error(Puppet::Error, /whatever/ }

we can now do

  it { should compile.and_raise_error(/whatever/) }
Overzealous search & replace
Merge pull request #151 from rodjek/capture_compile_failures

Capture compile failures