Add slot support for portage package provider.

This PR adds support for slotted packages on Portage-based systems.

With Portage it's possible to install multiple versions of some packages, e.g. dev-lang/ruby.
To facilitate this a colon and the version 'slot' is appended to the package name, e.g. dev-lang/ruby:1.9 or dev-lang/ruby:2.0.

This PR can be applied to older versions, including the latest stable version available on Gentoo (3.4.1).
This is a lot of logic to pack into a single line, could this be written out on multiple lines instead?