GptCommand: moved variable definitions from static context to instance context as they were referenced through instance. Added single GptCommand instance to it's module which is used by CommandService and tests
changed is_enabled_in(chat) to be always true. Instead, when user sends message that triggers the command, it is checked that the user has permission to use the command. User has permission if they have at leas one chat in common with the credit card holder. The bot notifies If user does not have permission to use the command.
Now conversation context is chat specific. Contexts are now saved in memory same way as before, but instead of one array, it's dictionary with chat ids as keys and message arrays as values
moved 'gpt_system_message' attribute from global bob model to chat model as 'gpt_system_prompt'. Reason for renaming: latter is used in the code and as so naming is now unified. Added migrations for forward and backwards migrate
Added ability to change system prompt to all users that have permission to use gpt-command
Added more information to the message that is replied if user sends '/gpt' command without parameters
Added current system prompt response if user sends '[!./]gpt [!./]system' without parameters
Added ability to empty current chat conversation context with '[!./]gpt [!./]reset' command
Altered tests to work after modifications, added new tests. Switched almost all Mock v1 implementations to more flexible Mock v2