Extract #format from Tag#to_html.

The HTML rendering is now done in two parts:

1. Tag#format method is called, passing the DocFormatter.
   This is where Markdown to HTML conversion happens.

2. Tag#to_html method is called, which must just return HTML.
   No more can formatter be used inside #to_html.

This simplified the passing of DocFormatter instance to Tags -
no more do we need to inject the formatter inside Tag classes,
instead we can just pass it as a parameter.  With this we remove
the single remaining state object from Tag class.
Render private class notice inside Tag::Private.
Render enum class notice inside Tag::Enum.
Render "Defaults to:" text inside Tag::Default.
Render "Overrides:" text inside new Tag::Overrides.
Create Tag::Doc for formatting the main description.

For now we're also introducing a special html_position=:doc.
But the next step will be to get rid of that.
New numeric Tag#html_position for ordering HTML.

Instead of having three fixed places for positioning the docs, the Tag
classes are now sorted based on a numeric #html_position value.  For
start I'm defining three constants, but any other values can also be
used.
Extract Sidebar class from Renderer.

Move the whole rendering of class sidebar inside that.

The Renderer class is now way cleaner.
Extract Subproperties class from Renderer.

Move the rendering of params, return and throws inside that.
Move the rendering of subproperties to Tag classes.

Param, Return and Throw classes now perform calls to
Subproperties.render* methods as needed.

Additionally rename the Param tag @key from :param to :params.
Otherwise we have no handler for the :params key to render the HTML.
Restore HTML rendering of subproperties.

The rendering of @cfg, @property, @css_var subproperties got lost during
the previous refactorings.

Add a special Subproperties tag class to render the :properties field.
Move all HTML rendering classes to Render namespace.

Cleaning up the top-level JsDuck namespace.
Move Markdown formatting classes to Format namespace.