Fix#995, Move Category Implementation from IGuildChannel to INestedChannel (#1004)
* Fix#995 ICategoryChannel.CategoryID throws NotSupportedException
* Add tests
* change run mode of TestChannelCategories
* Add throw for GetCategoryAsync
* Add xml doc explaining why exception is thrown
* Add test coverage for text and voice channel categories
* initial implementation of INestedChannel
* more implementation of INestedChannel design
* Add case in RestChannel Create for Category type
* set the CategoryID for RestVoiceChannel
* rewrite channel category tests to work with existing pattern
* remove outdated todo
* Make IVoiceChannel implement INestedChannel
* remove redundant interface implementation
* Add c#7 feature from feedback
* Remove redundant GetCategoryAsync methods from socket entities
* Added configureawait to async methods
* change signature of interface GetCategoryAsync
* Add check for cachemode in rest channel GetCategory
* remove redundant IGuildChannel interface from ITextChannel and IVoiceChannel
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.