isl_printer: save copy of prefix/suffix

The original implementation would simply copy the pointer passed
to isl_printer_set_prefix or isl_printer_set_suffix, which is unsafe
since the caller could release the corresponding memory after calling
these functions.  Keep a copy of the strings instead.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_printer: add indent_prefix

The printer "prefix" is documented to be printed after the indentation.
Sometimes, a prefix should be printed before the indentation.
Introduce a new indent_prefix for this purpose.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_aff.c: fix typo in comment

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
add some basic tests for binary operations on isl_aff objects

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_input.c: accept_affine: rename "dim" variable to "space"

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
add preliminary support for affine NaN expressions

This is still preliminary as we may have missed some operations
that require special NaN handling.  We are also a bit conservative
on some isl_pw_aff operations, considering an entire piecewise
expression as NaN as soon as it is NaN on any part of its domain.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>