More cleanup for kpm

- Removed FindLibraryBySnapshot since the input itself
is aware of snapshot versions.
- Use C#6 features to clean up some of the null checks

/cc @lodejard @ChengTian