Ability to do dichotomic search.

Squashed commit of the following:

commit eb0e4ddbfeacb0ade2ca67fcb9c895a88062219e
Author: 9thbit <9thbit@gmail.com>
Date:   Fri Aug 2 00:22:56 2013 +0800

    Support for dichotomic search on a maximisation problem.

commit 037cd9e45691395984b9687485599965298a0572
Author: 9thbit <9thbit@gmail.com>
Date:   Thu Aug 1 23:39:48 2013 +0800

    No need for all the minus 1's.

commit e261edd91dc20c8082698d5906861adff4bebca8
Author: 9thbit <9thbit@gmail.com>
Date:   Thu Aug 1 23:36:25 2013 +0800

    Fix a bug where a successful re-run wouldn't be saved as the new best solution.

commit 76259d63cfbcb6124466cfa019d33cf4de6e2cef
Author: 9thbit <9thbit@gmail.com>
Date:   Thu Aug 1 23:28:27 2013 +0800

    generate solve_dichotomic()

    Works only for minimisation for now. maximisation is the next todo.

commit 5c85b0ef315a4b01f658bc1e17920f13c58ced77
Author: 9thbit <9thbit@gmail.com>
Date:   Thu Aug 1 23:13:20 2013 +0800

    Work on merging in dichoticmic code generation into fzn2py.awk

commit 95aa770b265b78a3ac864a5109e3fc73c4541f7d
Author: 9thbit <9thbit@gmail.com>
Date:   Thu Aug 1 22:48:05 2013 +0800

    Test development instance.
Change default dichotomic time limit from 3s to 5s.
run_solve should take the model load time into account when setting the time limit
njportfolio will print unknown if no solver returned within the time limit.