Rely on clang infrastructure for simple ops.

For now it is disabled, because we need to verify the tests first.
We still need to fold expressions like 1*x + 1*x.
Use the type size not the size of int.
Add more tests.
We should start from the first array element. Better print message.
Include Rosenbrock function evaluation when running tests.
Decrease image size (for fast demo). Fix some floating point precision issues.
Fix diff param numbers.
Chanege recursive version of radiance method with iteractive version.
Pass to the APInt whether the type is signed or not.
Use uint64_t size, as the APInt ctor.
Declare in compatible with unix way.
[#11] Implement more complex folding logic.

More robust implementation of the trivial folding. I.e now it can fold floating
points, not only literals. Also handles the cases:

  0 * smth or smth * 0 == 0
  1 * smth or smth * 1 == smth
  smth +- 0 == smth
  0 / smth == 0

We need proper tests for those cases.
Save and retrieve the derivation arg index for each diff plan.
Initial implementation of deriving sin(x) and cos(x).
sin and cos math functions can be derived with respect to two arguments.
Add Rosenbrock function calculating 500 equations.
Will be used for demo and testing the future implementation of OpenCL support.