Coding in Diffusion-Based Molecular Nanonetworks: A Comprehensive Survey