Support for SAT encoding of modulus operator.
Squashed commit of the following:

commit 3f54a7fd2dca148223fe44b8e7e094e05882dc8a
Author: 9thbit <9thbit@gmail.com>
Date:   Fri Jun 21 19:30:41 2013 +0100

    Tests for modulus.

commit 6943f6777e76557ae8bad835aa3664191bebb66d
Author: 9thbit <9thbit@gmail.com>
Date:   Fri Jun 21 19:15:17 2013 +0100

    Support for SAT encoding of modulus in order encoding.

commit 9ed56caf71a1b75a16d012d74e8dc0ce71535eea
Author: 9thbit <9thbit@gmail.com>
Date:   Fri Jun 21 17:08:31 2013 +0100

    Expand mod support to two variables, X % Y == Z. Still just direct and support encoding.

commit 0eefa7d654b214f2250bb115febb2ce73f5aa1ff
Author: 9thbit <9thbit@gmail.com>
Date:   Fri Jun 21 14:47:57 2013 +0100

    Support for SAT encoding (X % value == Z) in direct and support encoding.
Add error message to get_index_n/p if called without a value list being set.

This may happen if a LeqDomain domain is created, e.g. (x <= 5) == z, and equal() is called without the order encoding of 'x' being enabled.
For now, in the unit tests, it will enable the order encoding where needed, but we should find a better solution for parameterized test-cases in future.
Small bit of tidy in SatWrapper deleting old commented code.
Add support for MIP encoding of modulus, absolute and negation.

Squashed commit of the following:

commit f14c51c9107e7397bba503a686c5721fdc087324
Author: 9thbit <9thbit@gmail.com>
Date:   Thu Jun 27 15:00:17 2013 +0100

    Add support for MIP encoding of modulus, absolute and negation.

commit 3db04bf1235caa60d4ceb3c0cb6b1091976fc64f
Author: 9thbit <9thbit@gmail.com>
Date:   Thu Jun 27 14:57:08 2013 +0100

    Small fixes for some debug statements and error output.
Bug fix for MIP encoding of reified equality.
Support for MIP encoding reification of disequality Z == (X != Y).
Rename _var to _arg in MipWrapper_neg and abs to avoid name clash with MipWrapper_Expression.
Fix for seg fault when calling get_value on a MIP variable that did not need to be added to the model.

The variable may not be passed to the solver if it is not involved in a non-trivial constraint. get_value() will return the variable's lower bound as the value in this case.
Doc additions to clarify the behaviour of get_value() in cases where the variable is not passed to the solver.
In the case of a variable not being created in the interface, return its lower bound.
Fix for Gurobi parameter changes not taking effect.

GRBModel takes a copy of the environment we created, so to change parameters of the environment we need to use model->getEnv() and modify that.
Ability to set thread count for Gurobi.
Make sure the local_lib folder is created
Merge pull request #10 from ten0s/master

Make sure the local_lib folder is created
Move ExampleInterface to available_interfaces directory.
Change to wildcards in gitignore.
-I is not needed before `python-config --cflags`
CPLEX interface.

Squashed commit of the following:
commit 04886521ec4e479fc0d1a71c794a367e59e25030
Author: 9thbit <9thbit@gmail.com>
Date:   Thu Aug 22 15:11:08 2013 +0100

    Remove some debug output.

commit f5bb15c3968c25dfa7e9fdf42fe7ee75280b6fcb
Author: 9thbit <9thbit@gmail.com>
Date:   Thu Aug 22 15:07:53 2013 +0100

    Ability to get and set CPLEX parameters.

    Changed the way expressions are added to the cplex model.

commit 56647603fa0d05470da48149ebbb0fe67cfaed6b
Author: 9thbit <9thbit@gmail.com>
Date:   Thu Aug 22 11:13:29 2013 +0100

    Remove hardcoded paths in CPLEX Makefile in place of a python file that will try to figure it out.

commit 7b0769267f4cffbe55e0111d7b3cf1e97b0a0380
Author: 9thbit <9thbit@gmail.com>
Date:   Thu Aug 22 10:23:46 2013 +0100

    Initial version of CPLEX interface.

    Paths hardcoded in makefile, working on that now.
Move CPLEX interface to available_interfaces.
is_opt() for MipWrapper.