add support for package format version 2 as specified in REP 140

This pull requests adds support for REP 140.

The internal storage of the `Package` class is based on the new format `2`. The only `1`-only attribute `run_depends` is being emulated based on the new `build_export_depends` and `exec_depends`. When a tag is being read which groups multiple other tags (`run_depends`, `depends`) the dependency is immediately expanded into the multiple categories.

Also an assertion is raised when a *package format* is parsed which can not be interpreted by this version of `catkin_pkg`. That was actually missing before which will generate issues if users have an older version of `catkin_pkg` but try to parse a *format 2* package.

Multiple dependencies of the same type to the same package / key are not being flagged as an error. Since this was not done before I didn't added it as part of this PR.

**Pros of this approach:**
* Straight forward implementation
* Public API of a package includes all attributes from version `1` as well as `2`

**Cons of this approach:**
* If a package is migrated from version `1` to `2` the `build_depends` might be moved to `test_depends`. For code which does not check the format version that might be an issue.
* Code which uses `build_depends` and `test_depends` in way where it is crucial to distinguish the semantic of version `1` and `2` need to be updated.