Enum.sample using reservoir sampling
guard for Enum.sample/2
eliminate count>=n corner case in Enum.sample/2

plus more tests
don't walk the collection on 0-sized Enum.sample

Previously the code was correctly returning empty sample
when requested Enum.sample/2 count was zero, but the input
collection was traversed for no reason.
test Enum.sample with different random seeds
fix Enum.sample docs

* sample/2 doc was empty
* clarify impl notes, add link to algorithm
* use :os.timestamp in examples of setting the seed
Enum.sample: use Tuple.duplicate for sample init
Enum.sample/2: dedup code in reducer branches
Format multiline AssertionError message with correct padding
Print process mailbox on failing assert_receive
Fix Logger.log/2 not to raise on Logger exit
Update Logger mode after configuration

Compute mode after configure as possible mode should change.
Typo fix
Merge pull request #2738 from mgwidmann/master

Correct documentation for proper grammer.
Merge pull request #2740 from styx/patch-1

Typo fix
#2737: deps.unlock should warn when given missing dependency

Signed-off-by: Mikhail S. Pobolovets <styx.mp@gmail.com>
Merge pull request #2741 from styx/master

Fixes #2737
Merge pull request #2736 from fishcakez/logger_stopped_exit

Fix Logger.log/2 not to raise on Logger exit
Introduce new operators intended for use by parser combinator libraries.

The expected definitions (which are by no means required) in
parser combinator speak are:

* `p  ~>> f`   =  `bind(p, f)`
* `p1 ~>  p2`  =  `pair_right(p1, p2)`
* `p1 <~  p2`  =  `pair_left(p1, p2)`
* `p1 <~> p2`  =  `pair_both(p1, p2)`
* `p  |~> f`   =  `map(p, f)`
* `1p <|> p2`  =  `either(p1, p2)`
Fix exit signal race condition in logger tests

Test process must wait for exit signal before untrapping exits,
otherwise exit signal may cause it to exit.