Fix the size of the splits array

The number of splits used had changed but the size of the array had
not. This was causing it to crash on exit when it tries to destroy all
of the splits.
Add some debugging for tracking references

This adds a new configure option called --enable-refcount-debug. When
enabled the rut_object_init, rut_refable_ref and rut_refable_unref
functions are augmented with some code to track the ref counts of all
objects in a hash table. By default the configure option is enabled
for non-release builds. The tracking can still be disabled at run-time
using the environment variable RUT_DISABLE_REFCOUNT_DEBUG.

If the debugging is not disabled then when the application exits it
will issue a g_warning if any objects are still alive. A list of the
alive objects will be saved to /tmp/rut-object-log.txt.

Additionally when building with glibc which provides the ‘backtrace’
function, it can also store a backtrace for every ref and unref. This
is enabled by setting the environment varaible RUT_BACKTRACE_LEVEL to
a non-zero value. When enabled the ref count log will include the
backtrace. Rut will try to convert the addresses from the backtrace to
source line numbers by forking the addr2line utility. If that doesn't
work it will resort to the backtrace_symbols function which gives less
useful information.