Removed boost::type
Replaced boost::function with std::function.
Also cleaned up some leftover boost type_traits which stopped working after the boost/function headers were removed.
Replaced boost::bind with lambdas and std::bind
Simplified target detection