noexcept cleanup:
- replace redundant noexcept(true) -> noexcept,
- use noexcept only in move semantics, places like swap and hash,
  and our own requirements on the key methods.
real: add user-defined literal.
Some \todo updates and remove a few useless 'static' specifiers.
mp_rational: fix brain damage in ctor from floating-point.

We did not fix the sign when cting from a negative integer value.
mp_integer/real: remove some usages of signbit().

In these cases we really just want to check for something that is mathematically negative.
-0.0 is still not negative when constructing an int/rational from it.
poisson_series: minor comment addition.
Revert to the previous behaviour of returning rational/integer for the sine/cosine
of rational/integer (instead of double).

The motivation is that with the new behaviour we would end up mixing C++ floats
with rat/int in the substitution routines. This had two nasty effects:
* converting exact quantities (int/rat) to floating-point (with all the connected
  fp nastiness),
* change the susbtitution result type to a series with floating-point coefficients,
  which is not what one generally wants when working with exact quantities.
rtkm: fix tests after recent changes.
Merge branch 'development' into quadmath