Bacterial Nanocompartments: Structures, Functions, and Applications