Fix compiler warnings
Optimize symbolic "extract" to produce literal value if result has width 0
prove/sat commands avoid generating SBV bitvector variables of zero width
Merge changes from SBV release version 3.1
Update regression test number 289, which now runs successfully.

This test works as of revision db08bfafa9a67e20fc3ddc5157075cc471ea2b04.

Versions of SBV prior to 3.1 did not distinguish the boolean type from
the size-1 bitvector type; this example uses literals like "0b0" and
"0b1", so it triggered the SBV bug, which manifested as a type error from
the external SMT solver.
Update output for regression test number 290
Update output for regression test 086.

(cf. revision 0ee396d434269e0bee0def34fc3201d38e4a1d22)
Update output for regression test 226