Hyperbolic Module

TODO:

- [x] sinh
- [x] cosh
- [x] tanh
- [x] coth
- [ ] asinh
- [ ] acosh
- [ ] atanh
- [ ] acoth
I see, the `sinh(arg)`. Hm. I am sure there is some way to do this in C++, but whether there is a simple way, that I don't know. For example, we can create a method in TrigFunction, something like `construct`, that would accept the argument `arg`, and each class would override it, for example `Sinh` would return `sinh(arg)`. I am sure there are many other ways.

Let's think about this some more. I like the `construct` (perhaps there is a better name) method, as it is useful to be able to construct the given class (with canonical simplifications), using some method. As this `subs` function shows.