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.
Fix `String.ljust/2,3` and `String.rjust/2,3` functions
Move string justification defaults to the function heads
No need for `do_` prefix in `String.do_justify/4`
improve important links

* First link should be  Elixir Website
* Elixir documentation added.
* IRC line improved
Merge pull request #2856 from lexmag/fix-string-justify

Improve string justification functions
link to docs.html

updated as per jose's suggestions
Fix type of Inspect.Opts limit