safe_cast: initial files.
safe_cast: move the double -> int specialisation into mp_integer, as we
use integer for the conversion.
safe_case: some minor test additions.
mp_integer: add missing include.
convert_to: improvements in the implementation and testing.

Now we enable the function only if it returns the appropriate type. The TMP logic
has been moved to a detail enabler. Tests involving user-defined conversions have
been added as well.
convert_to: test addition and comment clarification.
convert_to: some tests with cv qualifiers.
convert_to: re-use the enabler logic in the type trait, hence avoiding
duplication.
safe_cast: documentation and change the implementation to mirror convert_to.
convert_to: minor typo fix.
safe_cast: doc bits and simplify the float -> integral conversion.
Move the safe cast tests involving floats to mp_integer.
mp_integer: more work on the safe_cast specialisation.
Merge branch 'development' into k_monomial