Nddata/nddata arithmetic 2

This is a replacement for #501 - @wkerzendorf is out of town and we're hoping to do a beta release imminently. 

I just pulled out the commits that address the 3 bullet points at the top of the description of #501, and made a few fixes related to them. 

If we merge this, we should close #501 and open up a new one later if we want to develop some of the ideas there that are not addressed here.