WL#10799: integrate MySQL Router into MySQL Server repository

Affects: Server-8.0   —   Status: Complete   —   Priority: Medium

Motivation
==========

As part of the MySQL InnoDB Cluster the MySQL Router becomes a integral
part of the MySQL Server environment.

To simplify

* code reuse
* testing
* detect incompatible changes early
* ...

the router should be close to the MySQL Server in source.

On the other side, the integration shouldn't result in lower build times in
continuous integration systems.

Goals
=====

Integration to "all"
--------------------

1. "make all" should include MySQL Router
2. running the test-suite via "make" should run the MySQL Router tests too

Independent builds and packaging
--------------------------------

1. there must be a way to build MySQL Router without building the while MySQL
Server to keep build-times in CIs low.
2. the router packages should be able to be built without building the server
packages to allow independent testing in CIs.

 
Merge Criteria
--------------

Before the router's 'master' tree can be push into the server tree it:

C1
:  MUST have code coverage above 80%

C2
:  MUST build and pass tests with MySQL Server 8.0

C3
:  MUST build clean with Sun Studio

C4
:  MUST align the use of 3rd party dependencies with the server (protobuf, gmock, gtest, ...)

C5
:  MUST have zero unapproved bugs

C6
:  MUST got security review

C7
:  MUST got QA sign off

C8
:  MUST be `-Werror`, `ASAN`, `UBSAN`, `valgrind` clean

C9
:  MUST got Cmake files reviewed

C10
:  MUST build packages (tar, deb, rpm, msi)

C11
:  MUST be integrated with the windows installer.

Process Requirements
--------------------

P1
:  MUST unify the code-style with the google coding style guide-lines.

P2
:  MUST have all major refactoring branches merged

Non-Goals
---------

N1
:  packaging and distribution of the Router SHALL NOT change.
Directory Layout
================

The router source will be located in:

    router/

bundled 3rd party dependencies
==============================

Router uses:

* protobuf 3.0.0
* rapidjson

These MUST be removed and the server's ext/ folder must be used instead.

Dependent Work
==============

Source Tree Integration

Packaging