Simplify enum handling for resolution mode by using strings for the enums instead of ints.
create a function for setting up options shared between rez-env and rez-config.
refactor rez_parse_request to use a reusable class-based parser
use "new-style" classes.  "classic" classes have been deprecated since python 2.2.
rez.versions: simplify use of contains_version by allowing a version to be passed instead of a ge
rez.versions:  basic improvements and cleanup
- clarify is_inexact doc string
- add __repr__ to Version and VersionRange
rez_memcached: simplify and clarify the logic for finding packages by creating an iter_packages() generator which is sorted and filtered by find_package_in_range().  add VersionRange.matches_version() utility method.
rez_config and rez_memcache: add RezMemCache.caching_enabled() and do some basic cleanup of rez_config.
rez_metafile: Add helper methods for checking entry types
rez_config: separate dot graph building from package management
rez_config: standardize on _Package.as_package_request() vs pkg_to_pkg_req().
Fix a bug with Version.__init__ changerez_config.PackageRequest: don't constantly cast to VersionRanges to string and back again.
rez_config: provide utility anti_name() to return the name of the anti-package for the given package. Prevents users from messing around with package names directly.
rez_config: fix a bug with a missing tempfile import
Revert "Add the ability to use a single multi-line string for the commands section of package.yaml"

This reverts commit 11be8363b9f61f8581631fe18916f0f0bf940909.
Merge branch 'python-compatible-refactors'
Allow use of yaml's multi-line strings for metadata commands.  These are prefixed with a pipe (|)
Merge branch 'python-compatible-refactors'
Bugfix for rez_config.PackageRequest
Merge branch 'python-compatible-refactors'
bugfix for rez_config: separate dot graph