message: Consolidate `tf.data` release notes.
diff: ## Bug Fixes and Other Changes
  * `tf.data`:
  - * The `DatasetBase::DebugString()` method is now `const`.
  - * Added the `tf.contrib.data.sample_from_datasets()` API for randomly sampling from multiple datasets.
  + * `Dataset.from_generator()` now accepts an `args` list, in order to create nested generators.
  + * `Dataset.list_files()` now produces determinstic results when `shuffle=False` or a `seed` is passed.
  + * `tf.contrib.data.sample_from_datasets()` and `tf.contrib.data.choose_from_datasets()` make it easier to sample or deterministically choose elements from multiple datasets.
  + * `tf.contrib.data.make_csv_dataset()` now supports line breaks in quoted strings, and two infrequently used arguments removed.
  + * (C++) `DatasetBase::DebugString()` is now `const`.
  + * (C++) `DatasetBase::MakeIterator()` has been renamed to `DatasetBase::MakeIteratorInternal()`.
  + * (C++) `IteratorBase::Initialize()` method was added to support raising errors during iterator construction.
  * Eager Execution:
  * `tf.keras`:
  * Move Keras code out of _impl folder and remove API files.
  * Accelerated Linear Algebra (XLA):
  * TensorFlow Debugger (tfdbg) CLI:
  * `tf.contrib`:
  - * Add `tf.contrib.data.choose_from_datasets()`.
  - * `tf.contrib.data.make_csv_dataset()` now supports line breaks in quoted strings. Two arguments were removed from `make_csv_dataset`.
  * `tf.contrib.framework.zero_initializer` supports ResourceVariable.
  * Adding "constrained_optimization" to tensorflow/contrib.
  * Other:
  * More consistent GcsFileSystem behavior for certain reads past EOF.
  * Update benchmark for tf.scan to match ranges across eager and graph modes.
  * Fixed bug in `tf.reduce_prod gradient` for complex dtypes.
  - * Add optional `args` argument to `Dataset.from_generator()`.
  * Allow the use of '.' in variables (e.g. "hparams.parse('a.b=1.0')"), which would previously raise an error. This will correspond to an attribute name with an embedded '.' symbol (e.g. 'a.b'), which can only be accessed indirectly (e.g. through getattr and setattr). To set this up the user will first need to explicitly add the variable to the hparam object (e.g. "hparams.add_hparam(name='a.b', value=0.0)").
  * Benchmark for tf.scan in graph and eager modes.
  * Added complex128 support to FFT, FFT2D, FFT3D, IFFT, IFFT2D, and IFFT3D.
  * LinearOperator[1D,2D,3D]Circulant added to `tensorflow.linalg`.
  * Conv3D, Conv3DBackpropInput, Conv3DBackpropFilter now supports arbitrary.
  * Added `tf.train.Checkpoint` for reading/writing object-based checkpoints.
  - * `Dataset.list_files()` now produces determinstic results when `shuffle=False` or a `seed` is passed.
  * Added LinearOperatorKronecker, a dense-free implementation of the Kronecker Product.
  * Allow LinearOperator to broadcast.
  * SavedModelBuilder will now deduplicate asset names that point to files with the same basename and the same contents. Note that this may result in new asset files included in SavedModels in cases where assets with the same name but different contents were previously overwriting each other.
  