gschem: Dispose of redundant "misc" commands.
gschem: Remove redundant "page-new" command.

It does exactly the same as "file-new".  It was a toss-up which one to
keep, but "file-new" won.
gschem: First-class actions.
gschem: Wrap many built-in commands using new actions system.
gschem: Add action-property-hook.

Add a new hook that's called when any action's properties change.
gschem: Add bind-keys-hook.

Add a hook that is run whenever a key sequence is rebound.
scheme-api: Add support for C closures.

Some Guile APIs require a procedure, but do not provide the ability to
pass a C function + user data pair (for example, the hooks API).

This patch adds the edascm_c_make_closure() function, which takes a C
function and data pointer and returns a Guile procedure that closes
around them and accepts any number of arguments.
scheme-api: Add EdascmHookProxy class.

It's sometimes useful to be able to hook a GObject up to receive
signals whenever a Guile hook is run.  An EdascmHookProxy object makes
this easier by taking care of all of the interfacing with Guile.
Other GObject instances can just connect to EdascmHookProxy's "run"
signal and receive a callback whenever the hook fires.

The "run" signal requires a callback of the form:

  void user_function (EdascmHookProxy *proxy, SCM args,
                      gpointer user_data);

where args contains the argument list originally passed to (run-hook).
gschem: Create hook proxies for named hooks.
gschem: Revamp hotkeys window.