Basic typespec docs for functions

No @type documentation yet.

The style used for this is rather ugly, but it does the job for now.
Basic documentation of @type declarations

No links between types and specs and types, unfortunately. That's
somewhat complicated to add because the usual AST to source converter
(`Macro.to_string`) just outputs a simple string.
Don't show complete definition of opaque types
Rename specs to funcspecs for clarity

There's also typespec and the name specs was a bit confusing.
Tests for the types and specs doc code
Add links to type and function spec documentation

In order to keep most of the type linkify specific stuff from
making templates.ex much bigger than it was that has been split
into a separate file. This does create a recursive dependency,
but elixir/erlang doesn't seem to have a problem with that.
Reorganize filenames, move autolink to its own module
Merge remote-tracking branch 'pminten/typespecs-rebased' into merge
Adjust typespecs
Remove nest modulee functionality, reorganize code
Use Macro.to_string/2 to simplify autolinking
Rename exdoc -> ex_doc and move templates to inside html formatter
Do bulk autolink on HTMLFormatter.run/2