Add a take_every function.
Add a `@typedoc` attribute to document types

Also a new `Kernel.Typespec.beam_typedocs` function to get the typedoc
information.
Remove unneeded empty lines in the typedoc tests.
Use `typedoc` attribute to store typedocs.

This requires a bit of a workaround because `typedoc` is also used to store the
doc of the next type to be defined. We store typedocs in the docs table when
types are defined and later filter them out and put them into `typedoc`.
adding tests for ipv6 addresses on URIs
handling IPv6 addresses on URIs

* very naïve and permissive regex to check for IPv6 addreses.
more tests for IPv6
No longer trim by default when splitting

Further discussion here:

  https://groups.google.com/forum/#!topic/elixir-lang-core/66gb3J0bnUA
Return error on unsupported options in Regex.compile
parsing embedded IPv4 addresses
Merge pull request #1669 from brunoro/ipv6-uri

URI.parse supports IPv6 addresses
Merge pull request #1672 from meh/regex-compile

Return error on unsupported options in Regex.compile
Merge pull request #1671 from vanstee/string-split-trim-default

No longer trim by default when splitting
Support negative indicies in Enum.at/fetch/fetch!
Merge pull request #1675 from ericmj/enum-at-fetch-neg

Support negative indicies in Enum.at/fetch/fetch!
Only support iolists on IO
Update CHANGELOG
Fix handling pre/build data when minor/patch is missing in Mix.Version
Merge pull request #1683 from meh/fix-version

Fix handling pre/build data when minor/patch is missing in Mix.Version
Move is_odd and is_even to Integer