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
improve important links

* First link should be  Elixir Website
* Elixir documentation added.
* IRC line improved
link to docs.html

updated as per jose's suggestions
fix floating point approximation error
Raise on previous alias warning expansion
Update CHANGELOG.md
Merge pull request #2857 from eksperimental/patch-2

improve important links
Merge pull request #2871 from jw2013/floating-point

fix floating point approximation error
Delegate to :erlang.binary_to_float on Float.parse/1
Merge pull request #2584 from herenowcoder/enum-sample

Enum.sample using reservoir sampling
Introduce an implementation of Integer.digits/1

Introduces an efficient (purely mathematical) implementation of
Integer.digits/1.

Most developers tend to implement the digits of an integer by converting
to a string representation, splitting the string, and then converting
each char back into an integer.  E.g. with code such as the following:

```elixir
def digits(n) when is_integer(n) and n>0 do
    n
    |> Integer.to_string
    |> String.graphemes
    |> Enum.map(&String.to_integer/1)
end
```
Which results in a lot of inefficient type conversion and memory
allocation.

This implementation is purely mathematical.  In informal benchmarks on
my workstation, it performs at 0.9 μs/op versus 4.8 μs/op in the naïve
implementation above.
Fix misspellings in docs, comments, and strings.
More spelling and grammar fixes.