lib/string_exp/utf8_noindex: Added two-way iterators for FlatString

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
lib/string_exp/utf8_noindex: Added cache for last access.

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
bench/strings: Added bench for UTF-8 strings without index

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
lib/string_exp/utf8_noindex: Access is now done from the nearest point of insertion (begin, end or cache)

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
string_exp/utf8_noindex: Update README

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
benchmarks/string: Added benchmark for Array.to_s

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
lib/array_debug: Added array_debug module to keep stats on Array use in a program.

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
lib/standard/array: new NativeArray/NativeString are now usable everywhere.

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
lib/standard/string: Array.to_s micro-optimization

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
tests: Update tests for conformance with modifications.

Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>
Merge: Utf8 strings - noindex

Added a few features missing from UTF8 Strings without index.

NOTE : It is slow and space-consuming (lots of allocated characters and no GC), however by experimenting a bit (read : force UnicodeChar as a Universal intern class), the performance is surprisingly close to the old ones and the memory-use becomes acceptable once again :
* < 10% loss for iteration (with iterator, not index, this is much slower) and concat
* substring is slower by a significant margin (75%), however considering the cost of the ancient one (close to none), I guess this is still acceptable.

Pull-Request: #684
Reviewed-by: Jean Privat <jean@pryen.org>
Merge: Bench string

Added a few benches for variations of String and Array.
Also added a array_debug module on the same idea as hash_debug (PR #664) to track the use of to_s in Array (other functions may be supported someday if needed).

The UTF-8 benchmarks only work with the no-index version for now.

Pull-Request: #685
Reviewed-by: Jean Privat <jean@pryen.org>
Merge: lib/standard: optimize Array.to_s

Micro-optimized version of Array::to_s based on the results of benchmarks available in PR #685.

`./bin/nitg ./src/nitg.nit`
Before : `15.080 s`
After : `13.928 s`

Pull-Request: #686
Reviewed-by: Jean Privat <jean@pryen.org>