add lower bound optimization strategy
All the optimization strategies are using upper bound search. Initial experiments on the software dependency problems showed that lower bounding could provide good results. Moving a dedicated code for lower bounding optimization into sat4j library.