Redesign "vtkGhostLevels" arrays and related ghost functionalties.

 -The semantics of each unsigned char in the ghost arrays changes:
  Instead of storing a numeric value representing how far a cell is
  from the boundary, it is now a bit field specified by
  vtkDataSetAttributes::CellGhostTypes and
  vtkDataSetAttributes::PointGhostTypes.  The bit field is consistent
  with VisIt specs.

- Previously, filters strip all ghost cells they request from upstream
  before finalizing the output. This is no longer done.

- vtkUniform grids previously supports blanking through member arrays
  vtkUniformGrid::CellVisibility and
  vtkUniformGrid::PointVisibility. These arrays are removed and the
  blanking functionality are supported through the new ghost arrays
  instead.

- the "vtkGhostLevel" arrays for cell and point data are renamed by
  vtkDataSetAttributes::GhostArrayName().

Change-Id: If5ff516c0fb0b321aa9e0fcc8cf7e74f05e2b250
WIP: Work in progress

Change-Id: Ie729cc0c89b3269059dff9ae56da781ff5df93ca