Fix RS custom lower bound

- Because the upper bound is computed with a horizon of config.simLen, the
  lower bound should also run for at most those many steps, not till a
  terminal state as in the current impl. Otherwise the lower bound may be
  more accurate than the upper bound and break the invariant lb < ub.
- Add option to read upper bound from a file to main.cpp