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.