[sledge][nfc] Improve debug output for distance heuristics
[sledge][nfc] Improve debug output for distance heuristics

Summary:
This diff changes debugging output but not any analysis behaviors. Rather
than using the default Map.pp of the underlying representation, we now apply
some custom formatting and interleave trace information to make things more
readable and understandable.  For example,

```
sledge l a -g test/goal/recursion.trace test/goal/recursion.bc -t Llair
```

now yields

```
( Llair.compute_distances:wrt trace: ["foo" -> "bar" -> "baz"]
  ( Llair.reachable_dists:from &main#0 to &foo#1
  ) Llair.reachable_dists:
                             &main#0 (1)
                             &foo#1 (0)
  ( Llair.reachable_dists:from &foo#1 to &bar#1
  ) Llair.reachable_dists:
                             &foo#1 (1)
                             &bar#1 (0)
  ( Llair.reachable_dists:from &bar#1 to &baz#1
  ) Llair.reachable_dists:
                             &bar#1 (3)
                             &bar#tailrecurse (2)
                             &bar#3 (1)
                             &baz#1 (0)
) Llair.compute_distances:
```

Reviewed By: jberdine

Differential Revision: D37520271

fbshipit-source-id: 8ebc99e636d13ce9d2883ad0517d0384ff44e54e

facebook/infer,facebook/infer,facebook/infer,facebook/infer,facebook/infer,facebook/infer,facebook/infer