feat(plugin): add multi-transport router plugin
feat(plugin): add multi-transport router plugin

BREAKING CHANGE:

* AMQP plugin
  * removed build-in router
    * use `router` module instead of build-in router
      ```js
      /** CONFIG */
      // before
      config = {
        plugins: ['amqp'],
        amqp: {
          prefix: 'users',
          postfix: path.join(__dirname, 'actions'),
          initRoutes: true,
          initRouter: true,
        }
      };

      // after
      config = {
        plugins: ['router', 'amqp'],
        amqp: {
          router: {
            enabled: true,
          },
        },
        router: {
          routes: {
            directory: path.join(__dirname, 'actions'),
            transports: ['amqp'],
          },
        },
      };

      /** ACTION */
      // before
      module.exports = function action(message) {
        // `message` contains message from rabbitmq
      }

      // after
      function action(request) {
        // `request.params` contains message from rabbitmq
      }

      action.schema = 'validationSchema'; // you can use `schemaLessAction` router extension to avoid setting schema
      action.transports = ['amqp']; // you can set `setTransportsAsDefault` from router config as `true` to avoid setting transports

      module.exports = action;
      ```
  * changed config format
    * `transport` options can be configured in `transport` section
      ```js
      // before
      const config = {
        amqp: {
          connection: {
            host: 'rabbitmq',
            port: 5672,
          },
        },
      };

      // after
      const config = {
        amqp: {
          transport: {
            connection: {
              host: 'rabbitmq',
              port: 5672,
            },
          }
        },
      };
      ```
    * add `router` section that allows to enable `router` plugin
  * changed router binding function name from `MService.router` to `MService.AMQPRouter`
* SocketIO plugin
  * removed build-in router
    * use `router` module instead of build-in router
  * changed config format
    * `socket.io` options can be configured in `options` section
    * add `router` section that allows to enable `router` plugin

makeomatic/mservice,microfleet/core,microfleet/core,makeomatic/mservice,microfleet/core