Discrete Object Generation with Reversible Inductive Construction