Refactor kernel objects

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add options to customize formatter

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add expr_formatter and expr_locator. Add better error messages. Improve simple printer.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Fix type mismatch error message

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add abs/floor/ceil to double/float/mpq/mpfp
Fix interval<T>::operator- and interval<T>::operator/
Fix numeric_traits<mpfp>::pi constants
Fix default constructor of interval<T> to call reset method to assign 0
Add fmod, sin, cos to interval<T>
Add more test to interval