Future EAPI/Version syntax changes

Reordering to PACKAGE OP VERSION
Replace the current:

[ ]  [- ] [: ] ... ^^^^^^^^^^^^          ^^^^^^^^^^^^

with:

 [: ] [ ] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

e.g.:

Advantages:
 * more readable,
 * easier to edit,
 * easier to validate,
 * easier to split package name from version,
 * better ground for version ranges,
 * in the future, this will allow us to dump restriction on package names not being confusing with versions.

Range dependencies vs slotting
Sometimes it is necessary to restrict acceptable versions of a package to a range. This is frequently accomplished using the following syntax:

=dev-foo/bar-1.3

If the package is slotted, this dependency can actually cause PM to install two versions of the package in different slots, neither of them matching the intended range, e.g. 1.2 (satisfies <1.5) and 1.6 (satisfies >=1.3). For simple slotting, appending correct slot (e.g. :0) fixes that. For fully slotted packages, any-of dependencies are used instead:

|| (  dev-foo/bar:1.5   dev-foo/bar:1.4   dev-foo/bar:1.3 )

Problems:
 * verbosity, inconvenience,
 * any-of dep makes it impossible to use :=.

Excluding single package versions
Sometimes it is necessary to exclude one or a few versions from a wide range, e.g. due to a bug or temporary incompatibility. This is either achieved using:

|| (  ( =dev-foo/bar-1.3.2 )   ( =dev-foo/bar-1.1 ) )

or:

=dev-foo/bar-1.1 !!dev-foo/bar-1.3.0 !!dev-foo/bar-1.3.1

The former form has the disadvantages of any-of group, the latter of blockers.