refactoring: introduce AtInterface to allow easier AT command mocking for tests