refactor(dsolvers/icp_solver): add debugging message
fix(dsolvers/ode_solver): prune ODE result only if it's non-trivial

A system is trivial if all the ODEs are of the form "d/dt[v] = 0". If a
system is trivial, we don't call prune_forward/backward function because
there was nothing to prune in the bucket.

fix #50
feat(realpaver): add rp_ctr_num c for box operator and manage 'num_used' property

For now, we take the most conservative strategy where we mark a linked
constraint used when a operator is applied.
feat(cmake): add gflags dependency on realpaver
feat(realpaver): add new_explanation flag

By default, it's off. When it's on, dReal uses the new explanation
generation implementation, which is experimental now.

Usage:

    dReal --new_explanation=true <smt2 file>
fix(tests/nra_ode/aimhigh_1_0.smt2): UNSAT => SAT
checkpoint
checkpoint
checkpoint
checkpoint
checkpoint
checkpoint