Add RealHP<N> : double, quadruple and more precisions.
This MR allows to use precision multipliers in such a way that RealHP<1> is the plain old Real, then every higher number is a multiplier of the Real precision. RealHP<2> is double precision of Real, and RealHP<4> is quadruple precision of Real, and so on. As much as you need or want ;) N is always the multiplier of base precision Real.
I wanted to standardize this, because in the old days we "only" had float. Then someone said "hey, we need double". Now the computers are getting better and better. And float128 is already quite popular. Having to deal separately with all the possible precision names that will come up in the future would not be productive. Better to typedef them all as RealHP<N> and be done with it.
You can use cmake REAL_DECIMAL_PLACES=… or REAL_PRECISION_BITS=… option to change the base precision of Real (which defaults to double) and voila, all higher RealHP<N> have N*REAL_DECIMAL_PLACES decimal places and everything just works! :)
Documentation is here. So it's ready to merge! :)
EDIT: I am honestly not sure if I should write RealHP<N> or RealHP<n>. Because by convention types start with upper case, but this particular template argument is a value of type int. First I was writing N, because I was used to capital letters in templates. Then, when I started using it to write tests, I realized it's just a number and it should be lowercase. But I already had N in this code. Should I rename that? :) (it's just a few places, and will be in documentation - like in the title of this MR). In some places I also used RealHP<levelHP>. Pick the name you like!