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
Added :read_link option, doesn't break current tests, needs new tests
Added File.lstat and File.lstat! functions and associated tests.
These functions are elixir versions of the unix lstat function.
Based on email from Paulo Almeida, I removed the apparently extranous calls
to IO.char_data_to_string in the stat! and lstat! methods.
Revert "Based on email from Paulo Almeida, I removed the apparently extranous calls"

This reverts commit cd5ed1db59d1f93197fef72311e59cb42ed2ebc4.

Based on looking in the rest of file.ex and the foo and foo! methods,
they all use this same pattern. It's really kind of moot since
IO.char_to_string is almost always a single if_string return.

Either they should all be fixed, or they should all stay the same.

It might make sense to write a generalized bang macro.
Revised tests to use tmp_path for file paths.
correct is_nil @doc to have the same format as the other is_* functions. So it is consistent in the Kernel > Summary docs
Use a not confusing example for String.grapheme
Merge pull request #2828 from eksperimental/fixing

correct is_nil @doc + String.grapheme better example
List foldl, foldr @doc
fix link to bug reports
Merge pull request #2830 from eksperimental/patch-1

fix link to bug reports
explaining #elixir-lang

the markdown parser doesn't recognize the irc:// link, so it's not clear what #elixir-lang is. (it actually looks more like a twitter hashtag)