Move mixins docs processing to @mixins Tag class.

For this to work out correctly, the application of default values
in merger needed to be changes so that defaults get applied even
when the field doesn't exist in neither docs or code hash.
Move processing of several class tags to Tag classes.

Create ClassListTag base class for processing four tags:

- @mixins
- @alternateClassName
- @requires
- @uses
Merge @requires and @uses also when merging classes.
Move processing of aliases tags to Tag classes.

The tagnames from doc-comments and final field name are now the same -
:aliases.  Instead of the former case when one was named :alias and the
other :aliases.
Move @override processing to Tag class.
Move call to #build_doc_map one level up.

Instead of performing the map building in every #create_* method,
the map is passed as parameter to all of them.
Build doc_map just once.

Extract DocMap class for building map of @tags in comments.  Run
the map building just once inside FileParser - instead of repeating
this thing in DocType and DocAst.

No real speed advantage, mainly removal of duplication.