Chat: add multistep (#206)
* Chat: add multistep
* fix type error
* add comments
* merge events
* improve code
* fix non streaming chat and refactor
* fix custom tools
* fix tests
* fix chat history
* fix more tests
* fix rerank tests
* fix chat history bugs
* comment