Cycles in the dependency graph are caused by a user error, so
they should be exposed in the UI rather than just in the console.
This commit stores information about cycles in the graph object,
exposes it through C and RNA API, and adds a notification button
to the timeline header when the view layer graph has cycles.
Pressing the button pops up a menu with information about the cycles.
In the future entries of the menu can potentially jump to objects and
bones, but currently they are passive labels.