ENH: Ensure that repr and str work for MaskedArray non-ndarray bases

For repr, use the name of the base class in output as "masked_<name>"
(with name=array for ndarray to match the previous implementation).
For str, insert masked_print_option in an ndarray view of the object
array that is created for string output, to avoid calling __setitem__
in the base class.  Add tests to ensure this works.
Merge pull request #4576 from mhvk/ma/subclass-printing

ENH: Ensure that repr and str work for MaskedArray non-ndarray bases