Fix bad sentinel value in constant folding

The expansion of ``range(2**10)'' led to huge lists that in turn led to
memory burst.
Prevent unrolling of non-nested loops

Otherwise, some loop nests with constant bounds are fully unrolled,
which leads to code burst. To do so, implement an analysis to count the
number of nodes in the loop body.

As a side effect, remove useless ``if 1:`` in generated code.
Generic implementation of NUMPY_EXPR_TO_NDARRAY

Previous implementation only worked for numpy_expr, it now works for
anything that matches types::is_array<...>
Merge pull request #237 from serge-sans-paille/roll-bug

Generic implementation of NUMPY_EXPR_TO_NDARRAY
Avoid step multiplication for continuous slices
Use DNDEBUG as normal user only want perfs
Merge pull request #230 from serge-sans-paille/size-issue

Size issue
Merge pull request #236 from pbrunet/continuous_slice

Avoid step multiplication for continuous slices
Fix constness of the set -> bool conversion
Add set pretty-printer
Add support from the count method from str

As a consequence, dispatch it as it is shared by the list class.
Add support for isalpha and isdigit methods from str
Harmonize comments on dispatched methods
Fix handling of Mod, Pow and FloorDiv update operator

They are not implemented the same as regular update operators.
Do not move Top-Level Class definition into main

Otherwise the SyntaxChecker detects an unknown attribute where
unsupported user classes is much more clear.
Support array concatenation through plus operator
String iterator can return char instead of char&

Python string are immutable.
Support reverse iteration on strings
Handle dummy case of an empty set temporarily updated

This result in a call to the update method from the empty_set, which is
pretty useless.

As a side effect, fix a few test case that were badly designed.
Merge pull request #234 from serge-sans-paille/small-fixes

Small fixes