Policyfile support

NOTE: still needs a config option to enable policyfile mode.

Adds experimental, opt-in support for using Policyfiles to drive chef policy. Currently hard-codes "compatibility" mode, which means that policyfiles are stored in data bag items on the chef-server, and the standard cookbook API is used to fetch cookbooks. To support flexible cookbook management workflows, a field "dotted_decimal_identifier" is added to the `cookbook_locks` section of the policyfile; cookbook objects are fetched at the URL `"/cookbooks/:cookbook_name/:dotted_decimal_identifier". Therefore, "normal" cookbook versioning can be used by putting the x.y.z version number in this field, while alternative cookbook versioning can be used by assigning cookbooks custom version numbers on upload.

Additional supporting documentation can be found in this repo: https://github.com/danielsdeleo/chef-workflow2-prototype