ENH: Allow for providing dimensions as xarrays to Dataset.concat

I also took the opportunity to consolidate the dimension argument handling
logic with DatasetArray.concat.