Remove `turbo_tasks::function` from `AssetContext::layer` (#80592)
## Refactor `AssetContext.layer()` from a task function to a regular method
### Why?
This eliminates a turbo task and a cell, but does not change invalidation behavior.
I don't really anticipate a performance delta in any direction, but this this means in https://github.com/vercel/next.js/pull/80388 the new `LayerName` struct would not need to be a `turbo_tasks::value`