Error format - code and msg are the mandatory fields
Use generic errors in expression package.
Create directory and README for go_cbq library.
Add Aggregate.String() to enable reuse of aggregates.
Update test framework with unnest and inner join queries
Format golang imports.
Fine-tune EXPLAIN output: include namespace; omit default values.
Update expression docs for identifiers, and construction for arrays
Update documentation for expression/base with comment
Replace legacy clog with query logging api
Add examples of -timeout option in usage message.
Finalize output of EXPLAIN for SELECT using PrimaryScan.
Disallow duplicate result aliases.
Fold duplicate aggregates.
Allow GROUP BY with no results. Fix MB-12531.
Integration between views and 2i and few bugfixes.

- sync.Mutex to avoid race condition between refresh() and query-execution
  path.
  - refresh() on namespace seem to update,
    p.site.client, p.cbNamespace, p.keyspaceCache fields.
  - refresh() on keyspace seem to update `indexes` map asynchronously.
- cb.Bucket has a reference back to Pool. When a new pool object is
  created, correspondingly Bucket instances had to be updated using
  the new-pool instance.
- primary index can be created with views or with 2i.
- added definition for Statistics{} API contract.
- keyspace.Count() shall not use Statistics API.
Bugfix: async refresh will rebuild local DS.

- if secKey is empty, assign nil to `EntryKey`.
Bugfix: create primary index for more than buckets.
Unexport local APIs with sync-ops.
Implement LETTING without explicit GROUP BY. Fix MB-12108.