High level functions in Re

A new module, `Re.Easy`, contains high-level functions for basic operations such as:

- iterate on all matches of a `re` in a string, with a `'a gen` or a list (`Re.Easy.{iter,iter_gen,iter_matched,iter_matched_gen}`)
- split a string along a `re` separator (`Re.Easy.{split,split_gen}`)
- replace occurrences of a `re` within a string, with a string produced by a function (`Re.Easy.replace`).

The functions are documented and come with some basic tests in `lib_test/test_easy.ml`. Related to #17.