Change the environment cookbook_versions validator to use the constraint_map_spec api used by cookbooks.

We are removing 'null' as a valid option for cookbook_versions as an experiment.

Move constraint_map_spec/1, version_to_binary/1 and parse_version/1 to chef_object from chef_cookbook.
Refactor chef_environment to use specialized environment_constraint_map_spec.
disallow null cookbook versions in version validation