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.
mp_integer: complete the implementation of the specialisation of safe_cast,
including doc and testing.
piranha.hpp: outline a plan for future improvements to routines
involving floating-point types.
small_vector: replace boost integer traits with std::numeric_limits.
small_vector: add constructor from size and value.
ka: abstract away the type requirements.
ka: doc fix.
ka: another minor doc fix.
monomial: initial code for the new degree methods.