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`.
List types in docs giving the idea of aliases

The order was changed to follow to explanation in the next paragraph.
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
Adjust code to style used in the codebase
Provide better error message for mix -e, closes #1639
Update CHANGELOG