Squashed commits for masked column pattern change

  Make our MaskedColumn like the example in numpy.ma.tests.test_ma.MSubArray
  Updated implementation; Passes all but 2 tests
  Move most Column stuff into BaseColumn
  Add option to allow converting MaskedColumn to Column in BaseColumn
  Copy mask and change so mask len must match array len
  Add Column.__new__ which mostly calls BaseColumn.__new__, and some cleanup
  Strip off the BaseColumn-ness for repr and str to fix MaskedColumn repr
  Rewrite copy so it works for both Column and MaskedColumn
  Need to adjust fill_value in MaskedColumn.copy
  Remove unnecessary BaseColumn.__str__, MaskedColumn.__array_finalize__
  Further unify copy by making BaseColumn version fully general; improve docstring
  Set fill_value via setter, not MaskedArray constructor
  Residual cleanup from rebase
  Make MaskedColumn inherit from Column to get output methods
  Use six.callable for compatibility with Python 3.1
  Remove a misplaced str() conversion
  Update CHANGES.rst