perlvariables - iteration N

Later commits reworked a lot of this, but the use of GValue over void*
was kept.
Start of perlvariables iteration N+1

New plan: the C <-> perl interface deals entirely with strings. Storage
is entirely perl-side. C does not know and doesn't care about the
underlying perl-side types. Note that this means an "int" variable in C
land and an "int" variable in perl land have no relation.
g_strdup validsettings

This'll allow perl to set it too.
Fix error messages a bit
dlsym the functions we need after use Glib and before use BarnOwl

After use Glib so the library is loaded. Before use BarnOwl so we try to
use them before they're available.
And now... the moment you've all been waiting for...

Expose OWL_VARIABLE_OTHER variables to perl. Rewrite all perl variable
entry points to use that one. From now on, C only thinks of these
variables as strings.

(This has one regression to be fixed in a later commit: you can't
set/unset with no arguments since we don't know how to set from
boolean.)
Allow perl variables to participate in argumentless set/unset
Pipe all C-created variables through function calls

Gets us some long-overdue type checking in the various type-specific
callbacks.
Fix the unit tests

The arguments got reordered slightly to match the nasty macros.
Merge owl_variable_free and owl_variable_cleanup

We don't do the init/cleanup thing anymore.
Make GClosure invokes more mechanical

We don't really need some of those g_value_unsets, but we may as well
avoid making assumptions. Someone else might copy-and-paste the code
later and get it wrong.
Add new_variable_full

Route everything through that.
Add new_variable_enum

This seems to work. Yay.
Whitespace that I don't feel like rebasing

Sigh. Tabs and spaces.
Add some unit tests for enum variables

So we don't break them again.
Remove read-only variable check

Those are impossible now and were impossible before this branch (except
for the old "OWL_VARIABLE_OTHER" thing, which was unused). Yay deleting
code.
Add unit tests for perl-side variables
Change set_fromstring to die on failure

Returning zero/non-zero is awkward. Leave a note for future improvement
to pass the error message along, although the default one is pretty
reasonable already.
Remove pointless return code from owl_variable_add_defaults
Accept validsettings in new_variable_string

If people reeeaaally want to, I suppose they could pass in "<path>" or
something silly. Whatever.