Make kpm support three kinds of local repositories

- FlatListLocalPackageRepository: repo\{id}.{version}.nupkg
- NuGetStyleLocalPackageRepository: repo\{id}.{version}\{id}.{version}.nupkg
- LayeredLocalPackageRepository: repo\{id}\{version}\{id}.{version}.nupkg
I would avoid any changes to this class. It's optimized for runtime usage and I'd like to avoid supporting more than is required. Caching should just always be enabled for this thing.