Use approximate counter for CI/CD related big tables
## Problem
GitLab instances send usage pings from on-premises/gitlab.com servers to https://version.gitlab.com/usage_data. The tracked data is listed in https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/usage_data.rb.
In this routinue, GitLab counts a number of records for each tables/conditions, however, CI/CD related tables are too big (e.g. 170M~) to count. We should use approximate counter (`Gitlab::Database::Count.approximate_counts`) for those tables.
At the glance, those relations should be counted via `approximate_counts`.
- `Ci::Build`
- `Ci::Pipeline.internal`
- `Ci::Pipeline.external`
- `Ci::Pipeline.auto_devops_source`
- `Ci::Pipeline.repository_source`
We also want to add more queires which related to `ci_builds`, such as
- `SELECT COUNT(DISTINCT "ci_builds"."project_id") FROM "ci_builds" WHERE "ci_builds"."name" = 'pages:deploy'`
We tried to implement the query in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25014, but concluded that it doesn't work on gitlab.com scale.
issue