change demangle interface

because normally it will be called with typeid(T).name()
exception interface improvments

1) split exception module into 'exception definiton' and 'throw
helper'. Module exception.hpp/cpp contains less noise and should be
used by jet::exception handlers (catch(const jet::exception&)). Module
throw.hpp contains macros for throwing jet::exception.
2) Change macro syntax from JET_THROW(A << B << C) to JET_THROW() << A
<< B << C
3) cleaned demangle helper function (also made it applicable for
Windows)
4) removed redundant methods from jet::exception interface