replaced tamaas::Exception by a finer grain exception set
- use TAMAAS_ASSERT to check class invariants
- use nan_error when nans can be expected but calculation fails
- use model_type_error when expecting certain model types
- use not_implemented_error when implementation is not provided
- use standard library exceptions everywhere else
- use TAMAAS_MSG to format a text with file name, line no and function name
Notes: the Exception class exsisted to provide a constructor with a string to
std::exception, but std::logic_error and std::runtime_error both handle this.
Next, it would be interesting to add noexcept to some performance critical
code (mainly iterators and static_types) and benchmark the difference.
Closes #18