Allow "apply_function" as a public function

Previously, `_apply_along_axes` was private (and misnamed w.r.t. plurality).  It makes sense to allow users to apply their own functions.  For example, there are some numpy functions (`mean`) that I wanted to apply to the data and didn't have any way to do it.

It would be good to do the same thing for the `_apply_numpy_function` tool, but that one is a little more complicated to deal with and has a deeper dependency tree.

Also, right now `apply_function` has no tests!  Tragedy and travesty!
I don't think we've really settled on how to store meta-data yet - this is fine for now, as long as we can re-visit it as part of https://github.com/radio-astro-tools/spectral-cube/issues/84. For instance, it might make sense to define this as ``projection_axis`` or something like that. All I mean is, let's make sure we re-visit the metadata names in future and make sure they are all consistent.