removed mpl_utils.hpp
added automatic inferral of cost_type, if it isn't defined, also added more specific signature checking of cost functions