feat(kernel/expr): no overhead optional<expr> template specialization

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel/expr): add some_expr and none_expr for building values of type optional<expr>

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel/object): remove 'null' object, and operator bool for kernel objects

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel/object): remove 'null' object, and operator bool for kernel objects