Rewrite

Improve the test suite, refactor almost everything...

A bug was fixed in Chef 11, only use the workaround on Chef 10.

The test suite is now running on Travis on multiple versions of Chef.