Same functionality as base::sweep(), but also allow the margin to be specified as "taxa" or "samples" and for the taxa/sample names to get automatically matched up if the STATS argument is a named vector. Perhaps use lowercase arguments since the uppercase args of sweep() are a bit gauche. Could name the function ps_sweep() or ss_sweep().