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).