* Add AIContextProvider support
* Address feedback.
* Address PR comments.
* Switch to valuetask and remove parallel calls for AIContextProvider
* Remove Model from ModelInvokingAsync method name
* Remove agent thread id again and remove it from context provider interface
* Add AIContextProvider serialization support to AgentThread and update sample to show this feature
* Address PR comments
* Improve memory sample
* Update sample comment.
* Remove AggregateAIContextProvider for now since it makes too many assumptions. We can include it later as a sample if needed.
* Update AIContextProviders to have an Invoked method instead of MessagesAddingAsync.
* Remove unused using.
* Address PR comments.
* Address PR comment.
* Update comment.
* Update comment
* Address PR comments.
* Update ChatClientAgentThread to support both in-memory and service storage.
* Fix typos.
* Address PR comments
* Move code to reusable sections.
* Remove DefaultThreadStorageLocation
* Change thread type naming and make it internal
* Fix bug for streaming case.
* Add additional unit tests
* Add more unit tests to verify agent's thread update behavior.