Custom cache providers (#2)

Type-side resolving with c.inferImplicitValue and logging when custom builder cannot be found and default one will be used