Make SetAttributeValue() set the value's CharacterSet.

When SetAttributeValue() is given a string argument, the value that is
created now inherits the SpecificCharacterSet from the data set.
Fill in the gaps in the GB18030 linear table.

The file gb-18030-2005.ucm used to generate this table was missing
certain ranges of the algorithmically-generated codes (otherwise,
the file would have been huge).  This adds all of the missing ranges
that map to within the BMP (including those that map to the PUA).
Clean up some code related to GB18030 (no table changes).

The table has been returned to rectangular format (see the previous
commit for functional changes).
Explicitly code the changes that occurred with GB18030-2005.

This also adds mapping to planes beyond the BMP.
Explicitly check ranges for multi-byte iso-2022 codes.

The main benefit of this is that it allows the space character
to be interpreted as a single-byte character in iso-2022-jp text.
Otherwise, the trailing space that is mandatory padding at the end
of odd-length strings in DICOM would be interpreted as one half of
a corrupted multi-byte character.
Add tests for vtkDICOMCharacterSet.