Change GnmFunc from a boxed type with weird ref-counting to a proper
GObject with normal ref-counting, but also usage counting.
Function descriptor tables in plugins lose two pointers that almost
nobody was using: usage notifer (use signal notify::in-use instead) and
the link notifying (use signal link-dep instead).
There is still room for plenty of cleanup here.

This moves us closer to making array corners and elements part of GnmExprTop
as opposed to the current state where they are in GnmExpr, but are only
allowed at top level.
Specifically, with this commit, we now query attributes of array
corners and elements mostly with a texpr. Mostly.
A nice side effect is that many expr-impl.h includes can be removed. We
have too many of those.

This isn't ready for prime time yet. When turned on, function names
ought to be translated in the gui. That, of course, requires that
translators have translated the function names. The place to do that
is in the help text. For example:
msgid "PRODUCT:product of the given values"
msgstr "PRODUKT:produktet af de givne værdier"
(Does that really have two spaces?)