Only return the value if the result is a string

This avoid sending '[object Object]' as a result.
Minor nits
Add missing const
Fix a memory leak
Fix the 'builtins' command
Fix the Python install without DESTDIR
Clean up the I/O glib context outside the thread

There seems to be a race condition between a GSource and the context
destruction.
Make sure the I/O thread is shut down
Simplify FIFO and socket setup
Don't access private members
Factor out printing JavaScript exceptions
Set the log domain
Clean up logging
Allow unsetting variables
Refactor XDG code from uzbl-core.c
Add a function to escape a string
Initialize the name earlier
Initial groundwork for an internal EM
Add an 'em' command
Add a flag for dead EMs