Clean the feature selection within moses code

* Replace conditional macro by user options
* Add missing options in moses command line
* Move body of selector in feature_selector.cc
Add visitor to initialize value in multi_type_seq

It a visitor to set a value of a certain position of multi_type_seq to
its default value (0 for contin_t, "" for string, etc).
Implement --fs-ignore-exemplar-features user option
Add exemplar feature as input feature for feature selection within moses

Add option to consider the output of the exemplar as a feature
itself. That way we ask feature selection to find features which score
well combined with that exemplar feature.
Add option to subsample the table before feature selection

Not all feature selection algorithms have randomness. In order to add
some randomness to feature selection we offer the option to randomly
subsample the dataset.
Add exemplar feature as initial feature
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
Fix program some option assignments to the right variables
Add more logging for feature selection within moses
Improve comment
Fix builtin_to_str in the case the builtin is not boolean
Fix feature_selector::operator (inserting inputs isn't correct)

Since the values of the ignored features are initialized there exists
redundant inputs, therefore they have to be accumulated instead of
inserted (cause redundant inputs will have no effect).
Add program option to moses to control perm_ratio

perm_ratio is a way to control how many interactions between variables
are generated during representation building for the boolean domain.