message: singleton: definitions needed
  * for std::function
  * the callback is not declared outside the scope of the Manager class
  ```
  source/common/singleton/manager_impl.cc:10:55: error: 'SingletonFactoryCb' has not been declared
  InstancePtr ManagerImpl::get(const std::string& name, SingletonFactoryCb cb) {
  ^~~~~~~~~~~~~~~~~~
  ```
diff: #pragma once
  +#include <functional>
  #include <memory>
  #include "envoy/common/pure.h"
  @@ -34,6 +35,11 @@ public:
  std::string name() override { return name_param; }
  };
  +/**
  + * Callback function used to create a singleton.
  + */
  +typedef std::function<InstancePtr()> SingletonFactoryCb;
  +
  /**
  * A manager for all server-side singletons.
  */
  @@ -41,11 +47,6 @@ class Manager {
  public:
  virtual ~Manager() {}
  - /**
  - * Callback function used to create a singleton.
  - */
  - typedef std::function<InstancePtr()> SingletonFactoryCb;
  -
  /**
  * This is a helper on top of get() that casts the object stored to the specified type. Since the
  * manager only stores pointers to the base interface, dynamic_cast provides some level of
  