Neural Discrete Representation Learning