New trivial function: List.singleton and Array.singleton

for completeness
And the compulsory tests
s/consisting in/consisting of/g in docstrings
Merge branch 'singleton'
List.unfold
String.rev
deprecated mirror_in_place in favor of rev_in_place
Merge pull request #376 from rgrinberg/string_reverse

String.rev
Fix Int32.pack/unpack functions; invalid_argument test for being past string length was incorrect direction
change failure to invalid_arg in Int32.[un]pack[_big], add more tests
Faster version of BatString.replace

This version of 'replace' only allocates a single string. On short
strings it takes 60% of the time of the old version. Perhaps most the
time is spent in 'find'.
fix: make bench broken by composition operator renaming
Faster version of BatString.nreplace

With an accompanying benchmark against other possible implementations
showing this new version being consistently faster than current one
by around 20%.

Also introduce BatSubstring.unsafe_substring (used by a benchmark but
useful in itself).
added avg, favg + corresponding tests and an internal flength function used by both
added min_max + unit test and doc
micro fix asked by a maintainer
Merge pull request #382 from UnixJunkie/min_max_for_BatList

added min_max + unit test and doc
Fix ocamldoc on List.min_max to use correct @raise token
Merge pull request #379 from UnixJunkie/avg_for_BatArray

added avg, favg + corresponding tests and an internal flength function u...
Improve BatList documentation of exceptions