Beyond the Limits: A Survey of Techniques to Extend the Context Length in Large Language Models