Rewrite `da.fromfunction` with `da.blockwise` (#7704)
Rewrite `da.fromfunction` with `da.blockwise` (#7704)

This simplifies the implementation of `da.fromfunction` by rewriting it
in terms of `da.blockwise`. As a result `da.fromfunction` can take
advantage of HLG by default. This also makes it more natural to feed
into other HLG operations.
jakirkham/dask,blaze/dask,dask/dask,blaze/dask,jakirkham/dask,dask/dask