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.
series: test alternative syntax for evaluation.
Add initial files for the conver_to template.
real: move the swap function from std to the class namespace, as inline friend.

This is the idiomatic modern way of providing a user-defined swap.
convert_to: some changes to cope with ICC problems, minor fixes and doc.
real: actually remove the swap() free function.

Seems like in C++11 swap() is going to be implemented with move semantics anyway,
we probably can just forget about swap() in general.
convert_to: some testing with functions.
mp_integer: simplify the arithmetic and logical operators to use the same logic
as real and rational for template metaprogramming.

This allows us to get rid of a bunch of redundant type programming and simplifies
function signatures.
mp_integer: remove a couple of TODO items.
Replace uses of __clang__ with the proper piranha macro in the tests.
type_traits: disable a test that fails on GCC < 4.8.3.
convert_to: restore the use of static_cast<> for the default implementation.

This apparently allows us to sidestep the problem of libc++ not recognizing explicit
cast operator in its type traits.