Introduce styled exceptions This commit introduces the concept of _styled exceptions_, which basically allow putting some emphasis on user facing error messages. Before this change, exception messages were just plain text. It's now possible to have exceptions which provide a rich styled output when an ANSI console is available.
The attribute matching code has been adapted to make use of those new exception types.
Make it possible to use an ecosystem describer in more cases Before this commit the describer would only be used if the same set of attributes was found. This means that if the consumer added, or removed, one attribute, we would lose the benefit of better user error messages. With this change, we try to find the _best matching_ describer, if any.