minor whitespace and comment grammar/spelling fixes
collapse unnecessary split line and simplify enabled use flag set update
remove disabled use flags from enabled set

Previously enabling a flag via USE in make.conf would override profile
level disables.
minor line wrapping and whitespace fixes
add support for package.unmask in profiles (requires tests)
remove unused variable
output source repository instead of repo_id (requires tests)

This allows us to output the source repos for binpkgs instead of just
outputting the binpkg repo id.
add for package.keywords and package.accept_keywords in profiles (needs tests)
force the base profile to be loaded

Without this set, files in root profiles directory may be ignored, i.e.
/usr/portage/profiles/package.unmask settings will be ignored.
remove unnecessary new lines
properly respect package.keywords from profiles (requires tests)

This is a temporary, inefficient hack until a better solution is made to
overlay profile KEYWORDS from package.keywords on top of repos.
use unversioned atoms with --newuse building

Previously using versioned atoms could cause resolver failures if used
with the upgrade option on and a pkg was available for upgrade and had
changed use flags.
allow virtual/* pkgs to be considered for --newuse rebuilding
pmerge: remove -o alias for --oneshot (only -1 to mirror portage is enough)
minor simplifications for atom string formatting
change variable name to match replace resolver name
use fullslot attribute to track SLOT and slot/subslot to track related pieces
simplify pmerge formatting output of character operation descriptions

Basically use a list of static slots for characters. This vastly
simplifies handling whitespace and alignment issues.
remove extra spaces in pmerge output between atoms and use flag lists
output previously installed slotted versions for new slot installs