Advances in bosonic quantum error correction with Gottesman–Kitaev–Preskill Codes: Theory, engineering and applications