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 don't think this needs to be the base class for all 3 repositories, that seems suboptimal for the kpm repository case. I'd also take this opportunity to remove the enableCaching flag since it's only ever used in a single scenario. That flag isn't required anymore and it could simplify things.