Don't read the nuspec until the very last minute

- Added package info which stores the package id and version and nuspec directory.
 This is used for version resolution so we don't need to evaluate the nuspecs
 for all versions of a package up front.
- FindCandidate now resolves the correct package info then returns the appropriate
 IPackage after it is resolved.
- Skip null versions

/cc @jhawk42 @lodejard