function2 improved and configurable drop-in replacement header to 
std::function that supports move only types, multiple overloads
and more

benefits and improvements over std::function:

 * const, volatile, reference and noexcept correct (qualifiers are part
   of the operator() signature)
 * convertible to and from std::function as well as other callable
   types
 * adaptable through fu2::function_base (internal capacity,
   copyable and exception guarantees)
 * overloadable with an arbitrary count of signatures
   (fu2::function<bool(int), bool(float)>)
 * full allocator support in contrast to std::function, which doesn't
   provide support anymore
 * covered by many unit tests and continuous integration services
   (GCC, Clang and MSVC)
 * header only, just copy and include function.hpp in your project
 * permissively licensed under the boost license
