Initialize all instance variables in #initialize

Some instance variables were lazily initialized later, but I like to
have them all in #initialize so I know what I'm dealing with and to
avoid warnings.
Break line up to fit in 80 columns

I don't like lines that wrap.
Include platform in pretty print output

The index specification in the resolver didn't contain the platform
information.  This made it look like the same gem was used twice when
one of them had a different platform.
Remove TODO that the TODO author hasn't done
Include platform when sorting gems for resolution

When there are multiple possible gems to use for resolution RubyGems
would sort by source (name) and version and choose the latest spec.
This did not include the platform.

Omitting the platform could result in a gem with a C extension being
chosen over the platform-specific version.

Now the various specification classes (in the resolver) include the
platform and the resolver includes platform when sorting.  This causes
the resolver to try using a platform gem before using a gem with a C
extension.

Fixes #635