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`.
Rename File.IteratorError -> IO.StreamError

Iterators were replaced with streams a while ago
added handling of multiple heredocs on the same line
List types in docs giving the idea of aliases

The order was changed to follow to explanation in the next paragraph.
Merge pull request #1699 from alg/multiple-heredocs-handling

Handling of multiple heredocs on the same line
Merge pull request #1698 from pminten/rename-iterator-error

Rename File.IteratorError -> IO.StreamError
Update IO docs and clarify bin* functions
Update quote docs

:binding => :bind_quoted.
Merge pull request #1703 from ericmj/quote-docs

Update quote docs
Merge pull request #1702 from ericmj/io-docs

Update IO docs and clarify bin* functions
Merge pull request #1700 from Irio/master

List types in docs giving the idea of aliases
Move Mix.Version to Version in kernel.
Merge pull request #1614 from alexrp/master

Move Mix.Version to Version in kernel.
Merge pull request #1637 from pminten/typedoc-rebased

Typedoc rebased
Avoid duplicatation by making the typedoc signature always an empty list
No need to mark typedoc as persisted if we are manually persisting it
Merge pull request #1635 from Raynes/takenth

Add a take_every function