MemoryBank: Enhancing Large Language Models with Long-Term Memory