Change return value type of Tag#process_doc.

Instead of returning a single value, a hash must be returned which will
get merged with the resulting class/member hash.

The advantage being that one @tag can generate multiple fields in the
final class/member hash.
Implament class name detection in Tag::Class.
Change Tag#process_doc API to take two params.

Instead of returning a hash that gets merged into the final class/member
hash, the latter hash gets passed in as the first parameter and
the #process_doc can add desired fields to it.

This gives #process_doc the ability to check what's already inside the
final hash and then take action depending on that - not just blindly
writing over anything that happens to be there.
Move method name detection to Tag::Method.

Also the @constructor plays part in determining the name.
To make the two work together inspect the hash passed in to #process_doc
and only set the method name when needed.
Move event name detection to Tag::Event.
New multiline tags system.

Instead of setting @multiline = true, the multiline tags now return
a tag containing {:doc => :multiline} from their #parse method.

Inside Doc::Parser the free text will only get appended to these
:doc=>:multiline tags plus a special :tagname=>:doc tag which grabs
all the documentation since the beginning of doc-comment up to the first
multiline @tag.

The Doc::Ast will later combine docs for classes and members, mainly
looking at the :tagname=>:doc, but also at :cfg and :property which are
a special case because they can contain subproperties, and also
:constructor which can be used as a splitter between class documentation
and constructor documentation.