cached Provider
inline fun <T : Any> Project.cachedProvider(crossinline block: () -> List<T>?): Provider<out List<T>>
inline fun <K : Any, V : Any> Project.cachedProvider(crossinline block: () -> Map<K, V>?): Provider<out Map<K, V>>
inline fun <T : Any> ProviderFactory.cachedProvider(objects: ObjectFactory, crossinline block: () -> T?): Provider<out T>
inline fun <T : Any> ProviderFactory.cachedProvider(objects: ObjectFactory, crossinline block: () -> List<T>?): Provider<out List<T>>