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>