* spec.splice: properly handle cached hash invalidations * make package_hash a cached hash on the spec