Keep the LengthToEnd if it was already present.

This was the only retired tag that was forcefully stripped from the
data set.  If present, it seems better to ensure that it is correct,
than to remove it.  This also makes it easier to pass through old data
sets unchanged.
Don't write bogus tags with group < 0x0002.
Keep the private information in the meta header.

Even though we re-create the meta header, it makes sense to keep the
private information unless we have new private information to replace
it with.
Bump the version number to 0.5.0.

The major changes since 0.4.5 are as follows:
- Various cmake improvements, including CDash support
- The reader provides a vtkMedicalImageProperties object
- DICOM dictionary updated to the 2013 standard
- Resolution of private tags based on creator info
- niftitodicom supports RGB (for secondary capture only)
- native RLE codec (use DCMTK or GDCM for other codecs)
- API for vtkDICOMValue has been updated
- new vtkDICOMFile class allows utf8 paths

The API changes to vtkDICOMValue are as follows:
- GetNumberOfValues returns a size_t value, not unsigned int,
  and values with encapsulated data can now be > 4GB in size
- Methods that used to specify a range of values via a start
  and end pointer, now use a start pointer and a size