Adding Quantity-like arithmetic to NDData

Finally, I've had the time to start implementing the `Quantity`-like arithmetic. On the way I've changed a couple of other things

 * Removed the `copy` kwarg as it's confusing and only applies to data and not to meta, uncertainty, ...
 * changed `units` kwarg to `unit` as only one unit is given for the values in the data array
 * added a ducktype for MaskedArray as `data` and splitting it into `mask` and `data`

So now I implemented all the rest. One should be able to do the whole arithemtic back and forth (e.g. __radd__).

So the merging of meta I implemented is different, e.g.:
`new_meta = {'add':(meta1, meta2)}` 

I already talked to @astrofrog and merging of meta is difficult and brings issues with it:

when doing arithmetic with two nddata's they probably cary similar parameters that are both important (e.g. exptime) and going with the conventional method of dropping offending keys doesn't work. 
Also meta might be quite big and with this way we just reference it. 

It's not perfect - but I think might do for now. My other suggestion is to drop `meta`, like `flags` and `uncertainty`. 

All of this is for now and will probably not stay like this.