Empowering the Edge: Advancements in AI Hardware and In-Memory Computing Architectures for TinyML