Add option to load combo program from file
Improve program option help
Minor fix in debug logging message
Set all methods of bscore_base virtual

bscore_base::min_improv() and bscore_base::set_complexity_coef() need
to be virtual, otherwise if an inherited instance is referenced by a
pointer of type bscore_base the non-virtual methods of that base are
called instead of the inherited instance.

Frankly it still astonishes me that after 10 years of C++ experimence
I can still be confused... But the following experiment set it
clearly, look at this code

#include <iostream>

struct A {
    void truc() const { std::cout << "A" << std::endl; }
};

struct B : public A {
    void truc() const { std::cout << "B" << std::endl; }
};

int main() {
    B b;
    const A& a(b);

    a.truc();
    b.truc();
}

It outputs

A
B

So const A& a(b) has changed the method B::truc to A::truc.

But if I put virtual in front of the declaration of A::truc then it
works, the output is

B
B
Subtract minimum significant improvement from target_score

I found some cases when the max score termination condition isn't met
due to errors in the floating representation, so before being passed
to opt_params and moses_params the target_score is being subtracted
with c_scorer.min_improv().
Fix logger message
Improve logging message
Fix bug in setting exemplar feature