Add assert.hpp

cherry-pick from develop
Remove assertions in core
Call std::terminate when __builtin_unreachable is not provided
Add TODO comment for GCC 5.x
Fix wscript for assert.hpp
Add new model/mixable based mixable_weight_manager
Add todo comment