Add Recorder::unwind_loop()

We currently only use bounded loop unwinding. The LoopPolicy class
defines the loop unwinding bound for a given loop that must be
identified by a unique number. Macros such as __COUNTER__ could yield
such unique loop identifiers in a source-to-source transformation.

Unlike traditional bounded model checking, we encode multiple paths
as partial order constraints, cf. commit 53d7687a54af602466a8424cc15
Add __COUNTER__ test

The macro __COUNTER__ is supported by gcc and clang. It could be used in
constructing a compile-time LoopPolicy constant expression.