[tf.data] Add `synchronous` parameter to `map`.
[tf.data] Add `synchronous` parameter to `map`.

When `synchronous` is set to `True`, the `map` will always run synchronously, even when `options.experimental_optimization.map_parallelization=True`. Setting `synchronous=True` is useful for saving memory, since it buffers one less element than setting `num_parallel_calls=1`.
