In-Context Language Learning: Architectures and Algorithms