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.