Converted LBFGSB class to a template.
Changed the way objective function is specified. It is now encapsulated in
its own class or struct, rather than using std::function.
Put everything in namespace lbfgsb.
Removed dependence on meta.h. The Matrix, Vector and float_t types are not
specified through a traits class to the LBFGSB template.
Removed Assert() macro, replaced with inline static function in class
LBFGSB.
Removed Debug() macro, replaced with private class debug inside class
LBFGSB.
Debug output and Assertions are disabled when NDEBUG is #defined (more
conventional behaviour).
Moved sort_indexes() function into class LBFGSB as a static function.
Some minor formatting changes (function name capitalization).