Separated common logic of both `InfiniteQuery` and `Query` in a base class `BaseQuery` resulting in `InfiniteQuery` inheriting already having implemented features of `Query`
Added new infinite query class with it's own builder widget and integration with query_bowl
The `cast` method used in mutation and query are now a mixin instead of BasicOperation property