change CookbookSource to set location to a CachedLocation when cached_cookbook is set.
Added CachedLocation as sub class of PathLocation
fixes #718