Regular expressions & prop to bring back a better `String::has(Pattern)`

As asked by everyone...

`String::has(Pattern)` is much faster than `String::index_of(Pattern)` with regex. It can be optimized even more with `optimize_is_in`.

I'll be waiting after the test to make sure that it doesn't break anything.

What do you think of the doc/tests on the protected methods? I don't have any info to add, only tests and `requires`.

The only TODO would be to implement subexpressions; to get the the substrings of the parenthetical subexpressions of a single match. It is not the most common use but could be useful in some compilers.
le service `to_s` pourrait être utile

~~~
var re = "hel*o".to_re
assert re.to_s = "/hel*o/"
re.ignore_case = true
assert re.to_s = "/hel*o/i"
~~~

Des services d’échappement sont toujours pratiques pour nettoyer de l'input 

~~~
var s = "a?b+"
var s2 = s.escape_to_re 
assert s2 == "a\\?b\\+"
var re = "({s2})*".to_re
# ...
~~~