Use webmock for offline testing

Redirect all Chef requests made during testing using webmock (e96f04e) to sinatra app (e96f04e) that quacks like the chef server, but returns content of offline JSON fixtures (3dcbba6).

This significantly reduces the number of stubs needed for the tests to run (98b19e1), making them simpler to read and faster to develop. The price paid is relying on static fixtures, which might rot over time, but the hope is that the test coverage will allow refactoring to e.g. dependency injection sooner than that happens.

The rest of the commits add some really basic tests.