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.
Merge pull request #2913 from jbcrail/fix-misspellings

Fix misspellings in docs, comments, and strings.
Merge pull request #2910 from mroth/integerdigits

Introduce an efficient implementation for Integer.digits/1
Update documentation for Enum.join
Merge pull request #2914 from alco/enum-join-docfix

Update documentation for Enum.join
fix typo
Merge pull request #2918 from jw2013/typo

fix typo
introduce Enum.reverse/3
Merge pull request #2885 from jw2013/list

Introduce Enum.reverse_slice/3
Add Integer.undigits/2
Merge pull request #2921 from lstor/integer-undigits

Add implementation of Integer.undigits
Fix broken IO.ANSI.Docs parser
Fix IO.ANSI.Docs for multiple stars/underscores/backticks
Use the new build env on Travis

more ram and dedicated cpu cores, better network, faster boot times

http://docs.travis-ci.com/user/workers/container-based-infrastructure/
add 17.3 to allow_failures section
Merge pull request #2925 from joshk/patch-1

Use the new build env on Travis
fix corner case for end detection
add more test cases for in word symbols