Enhancement: Generalized DataPtr

This enhancement generalizes some of the code that is contained in radDataType.py (the original idea for this was suggested by @jspaleta  here: https://github.com/vtsuperdarn/davitpy/issues/68). Both `radDataPtr` and `sdDataPtr` share (once did and soon will again) a lot of the same code. Also, we need to be able to support different data types (ie. dmap, hdf5, txt, etc. see https://github.com/vtsuperdarn/davitpy/issues/65).

The best way to accomplish this is to have a parent `DataPtr` class that handles differences in file I/O between data types while maintaining consistent output. This code accomplishs that.

__To test this pull request, simply run `python DataTypes.py`__

The next step is to have both `radDataPtr` and `sdDataPtr` inherit from `DataPtr`.