Add profiling to squash

We are going to need to deal with the API proper soon. If we can - would be good to start thinking about "public" APIs and moving them to the `api.Ivory` or `api.IvoryNursery` rather than reaching into lower layers.