Add inheritance for several common parts

In this commit I have added support for inheritance of the following parts:

- Summary
- Description
- @package
- @author
- @version
- @copyright
Fix variable names for getParent handling
Remove redundant whiteline
Rename parent related variables to match interface
Extract common tag functionality to base-types
Add support for Property tags
Fix renaming error
Add support for Magic Properties
Add inheritance for subpackages
Fix error with subpackage inheritance
Add inheritance for var tag on property
Add support for var tag inheritance for Constants
Fix erroneous collection selection in Constant @var inheritance
Add support for type retrieval for Constants and Properties
Add support for property and method inheritance

With this commit we add a new method getInheritedProperties and
getInheritedMethods with the ClassDescriptor, TraitDescriptor and
InterfaceDescriptor.

Using this method it is possible to retrieve all methods that
are inherited by this Descriptor.
Add support for a 'global' @inheritDoc

One of the features that have been introduced by the community is that
an empty DocBlock with merely the text '{@inheritDoc}' will inherit
both Summary and Description (and all tags that are inherited usually).

This commit adds support for that by verifying the contents of the
Summary field.
Add support for @method and @property tags
Add unit tests for Descriptors
Fix broken tests
Clean up #820

As a final note we remove the old behaviour and update the CHANGELOG