Pickle the whole Quantity __dict__

This is a PR against https://github.com/astropy/astropy/pull/1961 which pickles the entire `__dict__` of the Quantity object so that subclasses of `Quantity` don't also have to worry about writing explicit `__reduce__` and `__setstate__` methods.  This essentially combines the Numpy array pickling (which is custom and uses `__reduce__`) with the standard way that Python objects are pickled.