Allow saving summary messages in roles other than system in conversation memory
In the current `ConcersationSummaryMemory`, `ConversationSummaryBufferMemory` and `ConversationKGMemory`, summarized messages are stored as `SystemMessage`.
However, according to the official documentation, gpt-3.5-turbo does not pay much attention to the `system` role message and prefers important information to be provided in the `user` role.

Quote 1 (https://github.com/openai/openai-python/blob/main/chatml.md)
> If adding instructions in the `system` message doesn't work, you can also try putting them into a `user` message. (In the near future, we will train our models to be much more steerable via the system message. But to date, we have trained only on a few system messages, so the models pay much more attention to user examples.)

Quote 2 (https://github.com/openai/openai-cookbook/blob/main/examples/How_to_format_inputs_to_ChatGPT_models.ipynb)
> The system message can be used to prime the assistant with different personalities or behaviors.
>
> However, the model does not generally pay as much attention to the system message, and therefore we recommend placing important instructions in the user message instead.

Therefore, this PR changes the behavior to allow storing summary messages in roles other than system.
A new variable `summary_message_role` is added with a default value of `"system"`. Depending on the value of this variable, the summary will be stored as a `HumanMessage`, `AIMessage`, or `SystemMessage`.